libfetch: fix fetch_err* for negative error codes
The earlier fix for 32-bit arches also messed up the sign extension for error code portion. Fix this by using a struct instead of trying to be clever with the bit shifts. fixes 8d41ff40 fetch: fix fetch_err_make() for 32-bit arches fixes #11082