Making the Java class pattern stricter.

Previously, the pattern matched strings which start with numbers
(e.g. "1foo") and strings which contain hyphens (e.g. "foo-bar").
Neither of these are legal Java class names, resulting in
occasional incorrect log parsing.

See the Java language specification, section 3.8:
http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.8

Strictly speaking, it's also possible to use many non-ASCII characters
in class names, but I've ignored that here.