Fog was not handling at all the error returned by docker-api. This
commit fixes that and raises an AuthenticationError that can be caught
by Fog clients.
There was a bug in the errors code for container_action that this PR
fixes too.
In order to test this properly, responses from the mock return values
closer to what the API actually returns. Examples are from Remote API
1.18.
downcasing hash keys cannot be performed on all Docker API operations so
now it will only be done where the top element is a hash. Logs, top, and
many others will not return a hash.