Be extra safe by grounding class names.
Properly handle parametrized class loggers.

This fixes #3 and adds tests to prevent its recurrence.

There's some argument that we should just _always_ use name-based
constructors. They perform (slightly) better, and I'm not sure that any
of the real-world logging implementations do anything more with a class
than convert it to a string. However, simulating standard usage is one
of the goals of this project so I'll leave it for now.

Ideally, `-log4s:always-use-names` (or something like that) would be
a configuration flag. (I'm not sure if there's any way for macros to
accept compiler flags. I could read the environment, but that seems
kinda hacky.)