Move hydrating of objects with Defer to DeferHydration class (from SearchHit)

This allows for other means of hydrating an object than using Defer.
Previous API from HydrationSettingsInterface is now provided by abstract
class DeferHydration.
Update SingleObjectHydration to extend DeferHydration