(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.
Are we sure about this? No nasty variable that can have a different value because it is resolved against a variable in the environment.conf where it is resolved against main settings in the string it is comparing against?