util: fix error handling in hex_to_bytes

Some blobs may legitimately have empty strings for some fields
(such as URL).  The read_hex_string() function would treat these
as errors, when we should really only consider non-hex values as
errors.  Change hex_to_bytes to indicate errors properly and
adjust the check in the caller.

Signed-off-by: Bob Copeland <copeland@lastpass.com>