Added strong typing for Thing42 & Thing42orNull

I made changes that *should* add strong typing to Thing42.java, but I had to add them to Thing42orNull, as well, so this changes the API to include the generics for most of the methods. We'll need to include this as part of our proposed API on Thursday.

I certainly hope I'm not stepping on anyone's toes by doing this, I know you all had agreed-upon assignments, so if I'm overstepping, just let me know :)

I also added a constructor test to verify different data types during construction (which seems the most likely spot to test). And the test run passes:
```
Testsuite: Thing42Test
Tests run: 8, Failures: 0, Errors: 0, Time elapsed: 0.389 sec

Testcase: constructorTest took 0.033 sec
Testcase: testAddPeer took 0.03 sec
Testcase: testAppendMember took 0 sec
Testcase: testGetOnePeer took 0 sec
Testcase: testGetPeersAsCollection took 0 sec
Testcase: testGetPeersAsCollectionUsingKey took 0 sec
Testcase: testRemoveFromPool took 0 sec
Testcase: testRemovePeer took 0 sec
```

And one last change for this: I modified the build.xml to look for *Test.class instead of *Test.java

I think this is something the whole team should review (just my opinion) but I like multiple eyes ensuring that I'm doing something right…

Please review: @ericvangelder @JamieWohletz @Kimmsudenver @moquin101 @SterL @stevilstick