[WIP] Puppet apply provisioner

After looking at https://github.com/test-kitchen/test-kitchen/pull/83 and https://github.com/test-kitchen/test-kitchen/pull/197

I wanted to take a stab at a lower impact / more contained provisioner. After writing a [shell provisioner](https://github.com/test-kitchen/test-kitchen/pull/286) it seemed like it could be done.

Currently this only sets up puppet 2.7 on ubuntu. It seems like moving to an omnibus installer would fix that up.

This works with hiera, but expects a `hiera.yaml` file somewhere in the directory tree. I wasn't sure if moving that to a template would be better.

The provisioner stanza in my `.kitchen.yml` looks like this
```yaml
provisioner:
  name: puppet_apply
  manifests_path: /absolute/path/to/puppet/manifests
  modules_path: /absolute/path/to/puppet/modules
  hiera_data_path: /absolute/path/to/puppet/puppet/hieradata
```

`manifests_path` and `modules_path` first look in the currently directory tree, but I'm testing this on another code base so it is a little wonky. Note, you can't seem to use `~/path/puppet`. If you do, nothing gets copied.

/cc @fnichol @jfryman
Do either of you know a good way to omnibus install puppet to fix this up?
What are your thought? 
Are there use cases that I have overlooked? 
What can we cleanup to make it more idiomatic?