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
strip the MACAddress for interfaces
typo - not httpd, http
couple of minor fixes - use FileUtils, drop instance var
Edited README to add nokogiri gem
Merge pull request #187 from casharma/TRAINVM-8/macaddress

Trainvm 8/macaddress
fix a variable I missed earlier
Merge pull request #188 from casharma/followup/mac

fix a variable I missed earlier
Add a defined type to manage group class params

With this, we can set params on classes assigned to a group. I
anticipate using it to tune ActiveMQ when we get the testing
network built.
Merge pull request #189 from binford2k/wip/add_console_param_management

Add a defined type to manage group class params
Fixed to use the new rake task style
Merge pull request #190 from binford2k/wip/add_console_param_management

Fixed to use the new rake task style
the console fix is not needed for PE> 3.0.0
add the puppetlabs/ntp module to the mix
Merge pull request #191 from casharma/fix/console

the console fix is not needed for PE> 3.0.0
Add defaults & set ptb to use it for now.
removed whitespace in host_aliases