Added client with root

Added a feature which enables the factory to get the root response from
the API and set it as a property on created clients. The retrieved root
response is cached and will be reused every time a client is created by
the factory instance. There is a way to enforce a refresh.

Note that this change is an addition, creating a client without
obtaining the root response is still possible.

This feature helps embrace the hypermedia driven paradigm even further,
as most HAL based API's will expose their various entry points as links
in the root response.