(NC-107)  Allow changing group environments

This builds upon the NC-106 PR (#19) by allowing group deltas to also change the group's environment. If any of the classes or class parameters referenced by the group do not exist in the new environment, the update will fail with an informative message for the user telling them exactly what's missing. In the future, once we pull classes from puppet, we will probably want to refresh our class definitions and retry the update before we pass the buck back to the user.