Added Validators for Java identifier naming schemes

This removes the regex based validation for Java identifiers which was incorrect in a few places. Adopted the checks as specified in the grammer in the Java Language Specification version 3.

Also updated license headers of classes that were updated in previous commits.