Add logging and some tidying of ID API client
Add Exception handling to Http classes

We now return Either in more places. This lets us use Left to describe
exceptions in the Http library to save the Api developer having to
catch all the possible exceptions for each supported HTTP library.