Enable Puppet Enterprise Provisioning

This patch-set (by way of @mrzarquon) enables the provisioning of Puppet Enterprise in addition to the existing FOSS Puppet provisioning. The big interface changes are the new metadata parameter for gce_instance and the change to module_repos to reverse the hash order to folder_on_disk => github_repo.

Chris, would you please confirm that I have all your patches? It works great from my smoke testing. I'm going to contribute a few more commits to add more smoke tests and documentation. I've got a wild hair to add beaker/rspec-system tests against gcutil but that doesn't have to block this PR. 

I intend to release it as 0.3.0-rc1 with a general release after the holiday.