(PUP-3239) Stop compilation if $environment has bad manifest settings

Before this commit we raised a warning if '$environment' was found
in the 'environmentpath' or 'basemodulepath' settings but continued
catalog compilation.

This commit adds in a validation method which raises an error before
compilation if an unsafe interpolation of '$environment' was found in
the 'environmentpath' or 'basemodulepath' settings thus stopping the
compilation process all together. This commit also consolidates the
'conflicting_manifest_settings?' method into the 'validate' method since
it also needs to halt compilation.

When new pre-compilation validations are added they can be added to the
new 'validate' method.
Yeah, that's a shortcoming of the approach I originally suggested in the ticket.  This method could instead return an error with the validation issue, and then the Compiler could catch and wrap that message.