adding annotation validators functionality
changes after feedback
More changes after feedback

- Fixed indentation
- Simplified hasValidatorAnnotation method
- Deleted test that was covered elsewhere
Changes from more feedback
- extracted creation of annotation validator into a factory
- added thread saftey around collections
added missing documentation
documentation added for AnnotationValidatorFactory
More changes after feedback.
Moved validator to category packages.
Changes around unmodifiable maps.
Made AnnotationValidator abstract.
More changes after feedback
- ParentRunner now has null object pattern for null annotation validators
- unmodifiableLists are now inserted into the maps of fMethodsForAnnotations and fFieldsForAnnotations
- null value check has been added to the AnnotationValidatorFactory
spacing
- Moved expect in tests to be right before test method is called
- Fixed javadoc comment in map getAnnotationToMethods/getAnnotationToFields methods
- Fixed duplicate test for annotationToMethods
- Sorted fields before iterating through them for annotations in TestClass
- Removed redundant wrapping of unmodifiableMap in getters of annotationToFields/Methods
- Moved validator package to org.junit.validator
- Fixed up some imports
- replaced null object pattern with null check in ParentRunner for validators
- added a comment regarding sorting of declared fields
- iterated over map using entry sets and not key sets in TestClass
refactored copying of maps to unmodfiableMaps in TestClass
- statically imported Collections where appropriate
- refactored the construction of the incompatiable annotations of CategoryValidator to be initialized immediately
changed arguments to validate methods to use JUnit classes as opposed to java.lang.reflect
Extract validation to a single class.