Add HydrationSettingsInterface & SingleObjectHydration

Give the user more control about how objects are hydrated.
Hydration parameters and hydration object can be created from the
document that was returned by the search.

Add a simple SingleObjectHydration class to cover the original
functionality