First cut at splitting up Defaults.scala.  Appears to not break anything (yet?)
Major refactoring to move Defaults.scala up into three plugins.

* Create new GlobalModule plugin which contains sbt's core settings for the build.
* Create new IvyModule plugin which contains only ivy-specific settings for a build.
* Create new JvmModule plugin which contains the remainder of what was in the defaultSettings.
* Improve AddSettings to be able to control when `Project.settings` are added (rather than always first).
* Move AutoPlugins to be loaded *FIRST* and then `Project.settings`.
* Update tests with two classes of fixes:
  - Using plugin disablement rather than `settings = Nil` to blank out projects
  - Specifically add `projectSettings` to the AddSettings configurations

Note: This is a semantically breaking change, albeit a binary compatible one.  Will most likely get
merged in a rebase, but we need to be careful about reviewing this.  Also, not all tests are fixed,
still working on `project/flatten`.