[WIP] Hydrator rewrite

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