DATAJPA-562 - Support for pluggable generic post-processing of JPA Query results.

We introduced the JpaResultPostProcessor interface to provide the  infrastructure to be able to post-process the results of entityManager.getResultList() or entityManager.getSingleResult() invocations.
This enables us to manipulate the results like automatically detaching them from the PersistenceContext or masking values etc via pluggable strategies.
By default a NoopJpaResultPostProcessor is used that returns the results as is. We also provide a DetachingJpaResultPostProcessor that detaches all returned domain-objects from the associated persistence-context.

Original pull request: #99.