Make training-bootstrap repo Jenkins-friendly

This commit aims to make the puppetlabs-training-bootstrap repo
jenkins-friendly without significantly altering existing functionality.
The goal is that it continue to work for existing users without
altering their current workflow.

This parameterizes all of the inputs to allow them to be set via environment
variable. Logic has also been added to work around minor command and path
differences between Mac and Linux.

This adds a function to automatically get the most recent internal test
version of PE if the PESTATUS environment variable is set to 'latest'.

Other updates have been made to the CentOS kickstart to work
with the above modifications. A script that runs on first boot has
been injected that will handle setting up the DNS and SSH keys to
use internally on the VM that gets published to our internal
VMWare infrastructure. This script does nothing and deletes
itself in any other scenario.

I did have to set huge timeouts in the execs that install PE
on the learning VM because the builder environment is slow.

None of these changes or additions should materially affect
the content or functionality of the generated VM in any way.
manage hiera datadir
add a comment to state PE version compatibility
fix for when students.size < maxsizs, and some math
Merge pull request #166 from shrug/feature-jenkins-builds

Make training-bootstrap repo Jenkins-friendly
Merge pull request #167 from casharma/fund/hierafix

Fund/hierafix