(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.
Yes, I'm not fond of this message -- a link to the environments section of the documentation? @nfagerlund (we should have pre-docs updated shortly and are pondering this horrible error message...any thoughts?)