WIP: support MongoDB replica sets
MongoDB replication

* Moves replica set entities from sandbox to software
* Entities interact with MongoDB Java driver via MongoClientSupport
* Exposes each server's MongoClientSupport on MongoDbReplicaSet
* Manages replica set configuration with ReplicaSetConfig class
* Exposes replica set member's statuses via ReplicaSetMemberStatus
* Restricts sets to 0, 3, 5 or 7 members.

Other minor alterations:
* Removes duplication between integration tests
* Removes getDataDirectory from MongoDbDriver interface
* Includes live test. Verified test_Ubuntu_12_0 passes.
Terminate Mongo DB servers with SIGINT, not SIGKILL

SIGKILL is not a clean shutdown and can cause data corruption.
MongoDb => MongoDB

For consistency with MongoDB branding and our other entities
Adds a demo MongoDB application to example/simple-nosql-cluster
Expose a MongoDB server's HTTP interface as an attribute on MongoDBServer
Address MongoDB replica set review comments

* Improve logging of exceptions
* Used ConfigKey and AttributeSensor for fields rather than Basic..
* Fix a few typos
* Add documentation notes about the OS X startup issue and the importance
  of the single threaded executor in MDBRepSetImpl
* Use Runnables rather than Callables in tests.
Avoid NullPointerException when removing primary from a replica set

getPrimary() checks all members but the entity that /was/ the primary
has been removed from the group by the time this log statement is reached.
If the set hasn't chosen a new primary and the sensors haven't updated
this causes a NullPointerException.
Improve removal of members from replica sets

Before reconfiguring set:
* Wait for server to have SERVICE_UP false
* Wait for set to have elected a new primary

Tests:
* Test the removal and replacement of replica set primaries
* Decrease servers' oplog size from 5% free disk to 32Mb
Remove templating from default MongoDB config file
Merge pull request #772 from sjcorbett/mongodb-replica-sets

MongoDB replica sets