Reduce Compiler Warnings & Fix A Bug
* Turn -feature on in plugins.sbt so feature warnings are printed by sbt
* Fix the deprecation of Default.defaultSettings in build
* Introduce scala language options as needed to reduce warnings
* Fix many deprecated scala macro changes
* Fix a bug in MongoDBSystem.postStop to avoid calling failure on an already completed promise which previously threw IllegalStateException("Promise already completed.")