Cleaned up constructor reflection code.

There was a lot of duplicate code and tests between BurstAndroid and BurstJUnit4 for reflecting on constructors, refactored all that into BurstableConstructor and BurstableConstructorTest.
We could add a flag to tell findSingle whether or not to allow nullary constructors if we want that strictness. Is it important to reject nullary constructors outside of Junit3/Android?