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 many non-ASCII character in
class names, but I've ignored that here.

(p.s I'm going through the process of approving CLA with legal, should be done soon. In the meantime, any feedback on the patch would be welcome.)