Add Naming strategy like pattern for Hydrators

This commit introduce strategies for key / properties transformations
Refactor Naming strategy to allow only 1 global strategy
#5364 Update doc-block for AbstractHydrator & NamingStrategy components
Merge pull request #5364 from ronan-gloo/develop

Add Naming strategy for Hydrators
[#5364] Simplify conditional

- we know we have a boolean; remove true === test
- combine if statement from body with else parent
[#5364] Use existing filters

- Modified class to use existing filters, via a filter chain, to perform
  the work. Filter chains are stored as static properties as the
  implementation will not change between instances.
CS fixes

- EOF endings
[#5364] Added note on feature to release notes
Merge branch 'feature/5364' into develop

Close #5364