Rework error handling

All methods now returns an augmented requests' Request object
instead of a dictionary. Two new attributes are available:
* uerror: a boolean that indicate if an HTTP error occured
* umessage: the error message in plain text