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
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.
Minor 'aesthetic' code changes for pull request.
Another minor aesthetic code change
Copy & paste error, was using the wrong ID data type on the Animal
repository