Add fundamentals::environment user config class

This removes the shell & editor configuration from the
bootstrap module and moves it to a configuration exercise for the
fundamentals course. The exercise allows the student to choose their
favorite shell & editor.

This configures syntax highlighting, etc for editors and sets up useful
aliases for shells. The chosen shell & editor is configured as default.

This may mean that we'll need to add it back for the Learning VM.

The class accepts two parameters:

* `editor`: accepts emacs/vim/nano
* `shell`: accepts bash/zsh
cleanup

* the `in` keyword doesn't like undef as a lvalue
* fail instead of just warning
refactored to new module

* Moved this to its own module so that bootstrap & all courses can use it
* Added declaration to bootstrap so the Learning VM is configured
didn't mean to update the class signature
Add defaults & set ptb to use it for now.
Merge branch 'wip/customizable_user_environment' of github.com:binford2k/puppetlabs-training-bootstrap into binford2k-wip/customizable_user_environment

* 'wip/customizable_user_environment' of github.com:binford2k/puppetlabs-training-bootstrap:
  Add defaults & set ptb to use it for now.
  didn't mean to update the class signature
  refactored to new module
  cleanup
  Add fundamentals::environment user config class
Merging in the latest from upstream.