Created a RepositoryCollection interface to allow proper dependency injection.
The idea is that other databases could implement this interface and be injected, not just mongoDB.
Created RepositoryCollection interface in the hope of doing dependency injection properly.
Hopefully now Guice will inject a MongoRepositoryCollection into ConfigDatabase and a JacksonDBCollection into MongoRepositoryCollection.
Merge branch 'guice3' into guice

Conflicts:
	src/main/java/uk/ac/cam/cl/git/DatabaseModule.java
	src/main/java/uk/ac/cam/cl/git/MongoRepositoryCollection.java
Written javadocs for new interface.
Updated unit tests to match new dependency injection.
Created local implementation of RepositoryCollection to test Guice injection.
(The testing still needs to be done.)
Also created own DuplicateKeyException instead of using the mongo one.
More work with LocalRepositoryCollection.
Commits around now will be messy because of git's new tendency to change branch by itself.
Merge branch 'guice2' into guice because of faff with git changing branches

Conflicts:
	src/main/java/uk/ac/cam/cl/git/ConfigDatabase.java
	src/main/java/uk/ac/cam/cl/git/DatabaseModule.java
	src/main/java/uk/ac/cam/cl/git/LocalRepositoryCollection.java
	src/test/java/uk/ac/cam/cl/git/ConfigDatabaseUnitTests.java
Several minor changes so that the Guice dependency injection seems to fully work.
Merge branch 'guice'