[WIP] Hydrator rewrite

It has come so far - the hydrator needs (again) a rewrite due to its excessive complexity

This PR aims at:

 - [ ] Splitting by-value and by-reference hydrator logic
 - [ ] Adding field value conversion capabilities (datetime/integers/etc) 
 - [ ] Moving `ToOne` and `ToMany` hydration to strategies
 - [ ] Allowing reuse of the hydrator with different objects
 - [ ] Performance improvements
 - [ ] Documentation improvements (particularly on internal functionality)