Handle 300 status code in common HTTPClient

Common HTTPClient uses requests library for http communication, but
this library raise no exception if we get code 300 as response status.
On the other hand, some openstack clients (ceilometerclient,
glanceclient, heatclient, ironiccilent, tuskarclient) handles this
status code and raise a special exception in such case. So we should
provide a special exception for 300 status code in common apiclient.

Added required exception - MultipleChoices.

blueprint common-client-library-2

Change-Id: I991737dd4c2d8bdf8bbb5380f05d4cf2b3bcf953
Add test for raising errors in HTTPClient

Class `HTTPClient` doesn't have tests for raising errors.
This patch tests HTTPClient:
* when server returned status code #400 (Bad Request);
* when auth plugin does not return any token and endpoint.
* when client_request raises Unauthorized

Change-Id: Ic30db9fade2368c51db742d3809e84885b8e41b3
Merge "Add test for raising errors in HTTPClient"
Merge "Handle 300 status code in common HTTPClient"