Fix displayed test names.

The `BurstTestCase` approach didn't work as desired - the tests were displayed as `BurstTestCase` regardless of what `getName` or `toString` returned. Something in the framework must be doing `getClass().getName()` or similar, though I haven't found the code that does so.

So it seems we can't use "wrapper" `TestCase`s, making it a bit harder to control test names. Using `setTest` would break `TestCase`s reflective method invokation. Overriding `getTest` works, but we don't want to require a single parent test case, so it seems best to instrument test classes at runtime.
Prevent TestInstrumenter from being instantiated

And make it final and package private
Merge pull request #19 from square/dlubarov.fix_test_names

Fix displayed test names
First version will be 0.9.0.
Read me, read me, read me.
Declare test args as Enum<?> everywhere.

To add a bit of extra type safety. Makes the `nonEnumArgumentsFail()` test unnecessary.
Add description in parent pom
Merge pull request #21 from square/dlubarov.more_type_safety

Declare test args as Enum<?> everywhere
Merge pull request #22 from square/dlubarov.add_description

Add description in parent pom
Add callbacks for filtering tests.