Adding Spock for unit tests (replacing JMock)

I've converted all the existing JMock tests into Spock tests, as Spock provides much prettier and more readable mocking. I've also converted a number of other unit tests, showcasing some of Spock's features like data driven testing (see WriteConcernSpecification) and stubbing (see ReplicaSetStatusSpecification). I've removed the dependency on JMock, so the list of dependencies is marginally smaller. Note that so far I've only applied Spock to driver and driver-compat modules