In amazon/validator.go, an error was being wrapped by fmt.Errorf("%v",
err). That discards any type information about the returned error;
returning err lets the callers inspect the exact error returned by the
HTTP client.
The test had to change to do similar inspection.
I found two JSON errors being shadowed; the one in amazon/validator.go
is being hidden by errors.New(responseError.Message) -- which should be
an empty string if there's a JSON error. So, it wouldn't report success,
but this gives the caller better information on what failed.
The second is in appstore/validator.go, which was ignoring encode errors
before POSTing a verify request.