SubclassHandlers now have versions.

Currently, there is no way of writing different SubClassHandlers for different versions of OpenMRS. This commit aims to fix it.
The new SubClassHandler annotation will ensure the right version is taken. We do a few things to ensure modules that have defined SubClassHandlers of their own do not fail.
1. If the annotation is not specified, the SubClassHandler will still be loaded for the resource.
2. We ensure that any SubClassHandler will be picked up from the Context. This also allows clients to use Spring for DI for their own SubClassHandlers.

Thanks
Neha/Vinay