More changes after feedback.
Moved validator to category packages.
Changes around unmodifiable maps.
Made AnnotationValidator abstract.