Allow custom parameters for puppet locations

This is a PR to fix the improvements required in https://github.com/simplybusiness/capistrano-ext-puppetize/issues/

* Fix the requirement for app_host_name, maybe replacing it with a configurable list of variables that should be exported to puppet
I've changed this so it makes a basic "appname" or "stage-appname" by default, and you can add something more complicated in the deploy.rb if required.

* Make the path to checked out puppet files (currently config/puppet) configurable
Done using fetch, it defaults to `#{current_release}/config/puppet` but you can set your own one with:
``ruby
set :puppet_modules_location, "~/foo/bar/"
```

* Make path to where puppet is installed on the deployed-to host (now /etc/puppet) configurable
Again, using fetch it defaults to '/etc/puppet', but you can set your own custom location with:
``ruby
set :puppet_install_dir, "~/tmp/puppet-run/"
```

Since these are some pretty big changes, I'm looking into the best way to do tests for the gem, probably using https://github.com/technicalpickles/capistrano-spec? 

@telent any thoughts?