DATAREST-216 - Removed CrudRepositoryInvoker#invokeFindOne(Serializable id) method override as this will cause the findOne(Serializable id) method to be called instead of any existing, more specific methods. This in turn bypasses any AOP proxying of the more specific method.

DATAREST-217 - Fixed issue where all entities were still being shown when the 'findAll' method is explicitly not exported. The RepositoryEntityController#listEntities now checks to see if the method is exposed and returns an empty object array if it is not. This is a more appropriate place for this behavior than the ReflectionRepositoryInvoker since this is a REST presentation issue.

DATAREST-218 - Improved the performance of the ReflectionRepositoryInvoker by introducing a 'VTable' (i.e. a object that holds delegates to each CRUD method). This allows all of the 'method choosing' behavior to be performed during the initialization of the repository instead of occurring on a 'per CRUD method call' basis. The absence of a delegate demarcates a method that is either missing from the underlying repository or that is explicitly not exported. This avoids a further reflection call each time to check for the 'exported' annotation.
Revert "DATAREST-216 - Removed CrudRepositoryInvoker#invokeFindOne(Serializable id) method override as this will cause the findOne(Serializable id) method to be called instead of any existing, more specific methods. This in turn bypasses any AOP proxying of the more specific method."

This reverts commit 09f0088b0bf3ec49d697774dcd77c603be54ea30.

Will add as separate commits for each ticket
Added unit test 'agent' repository
Implemented unit test and fix for DATAREST-216
Removed unnecessary repository method
Removed stuff that I thought i removed already
Yet more stuff that I swear i removed already (time to stop trusting
EGit merge...)
Updated new test author name (copy paste error)