(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.
lines need to be indented to belong to the @return entry (I think).