manage yum repositories

Enable or disable upstream repos based on $offline
Add switch to disable this management
updating classroom module
Manage ngIRCd on the master
use $servername for IRC
add proxy support
Add reporting tools for practioner labs
All classroom automation integrated

Instructors should simply classify their classes with the appropriate
wrapper class.

* `classroom::course::fundamentals`
* `classroom::course::practitioner`
* `classroom::course::rapiddeploy`

This class will do the needful, figure out what kind of node this is and
classify it appropriately. Helper classes are organized in a
discoverable manner.

This supports roles of:

* master: the classroom master
* agent:  the student's primary node, may be simply an agent, or a master/agent
* proxy:  runs the HAProxy node for the classroom
* tier3:  a student's secondary agent node
make idempotent
Merge pull request #268 from binford2k/wip/rafactor_for_integration

Wip/rafactor for integration
Conditionally manage git repositories

This makes the architect course simpler, without extra stuff hanging
around. It also gives us the ability to trivially update the class to
use git workflows if we choose to do so.
put the reporting tools on student masters
better tier3 handoff

* add ca_server
* use file_line instead of augeas
Added a custom function to retrieve the latest version of a module
update the type to now use the function
newline
Merge pull request #272 from binford2k/wip/rafactor_for_integration

Wip/rafactor for integration
misc fixups

* env version now returns epoch if the env doesn't exist
* set sudoers rules so student can run reporting & mco toold
* cleaned up git management
Merge pull request #274 from binford2k/wip/rafactor_for_integration

misc fixups
Updated list of modules to be cached. Some cached by PE now, some not needed
no need to cache builder, and comments cleanup