Bugfixes, extend functionality to open-source Puppet

Thanks for publishing! I had slated some time to do something fairly similar and someone on #puppet mentioned this. 

I've added functionality to specify default dirs and user for open-source puppet and removed hardcodes to PE directory paths. Some additional bugfixes:

* Though you mentioned a default "peadmin" user it wasn't set, causing the sudo commands to fail.
* YAML fact_source has been corrected to "yaml", not "user"
* mutex_option has been explicitly declared false at the beginning of the run, as it errored using explicit flags before
* The "user" option has been corrected to actually set the user_name variable. 
* I changed up the sourcing of your options parser so as to work regardless of where the script is called. I happened to have this repo in /opt and symlinked from /usr/local/bin, so this behavior now works.