[2.2] [Serializer] Configurable Serializer - rebased

Bug fix: no
Feature addition: yes
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: #4907,  #4938
License of the code: MIT
Todo: 
 - documentation PR
 - more tests
 - feedback?

This is a rebase of #4938 with some additions.
It's based on the [comment](https://github.com/symfony/symfony/pull/4938#issuecomment-11894811) after a talk to @lsmith