(WIP- do not merge) Feature/master/pup 3069 add defaultmanifest

This provides default_manifest and restrict_environment_manifest, and halts compilation if there is a conflict in manifest settings.  It needs some integration tests and should not be merged just yet, but it is otherwise ready for review.
Left as a check on Puppet[:default_manifest]