Adding support for profiling (using evaltrace) in the puppet apply provisioner module

This allows you to display a list of the puppet resources taking the longest to execute.

By default profiling is deactivated.

To activate, you need to set a numerical value to config.profiling corresponding
to the number of resources you want to see in your profiling report, as in:

  config.vm.provision "puppet" do |puppet|
    puppet.profiling = 5
    ...
  end

This would display the slowest 5 puppet resources as such:

Top 5 Puppet resources by runtime
=================================
       0s - Service[squid3]
       0s - Class[Squid]
       0s - Class[Settings]
       0s - Stage[post-yum-repo-setup]
       0s - Class[Squid]
       0s - Stage[yum-repo-setup]

As you can see in this example, execution times are displayed in seconds (truncated),
and in his specific case there is probably not much we can do to make it go faster ;)

This code was originally written in a custom provisioner for vagrant 1.0.x by
Peter Leschev <pleschev@atlassian.com>.

This commit makes it configurable and ports is to the upstream puppet provisioner plugin.