Improve requests wrapper

Make the client does not set the content-type header when doing file
uploads.
Does not call json.dumps if data is None. None means that does not want
to send any data, but if the dumps is called it will be converted to
equivalent null on JavaScript and this make Satellite server break.
Merge pull request #1371 from elyezer/api-client-improvements

Improve requests wrapper