Gateway user override for provisioning

The 'provisioning' mode was not particularly useful when reprovisioning
nodes in an environment -- it assumes that the entire env is fresh, and
that the 'provisioning' user is available on the gateway.

For security reasons, this should never be the case on an existing gateway.

Hence, allow for a 'gateway_user' var to be specified, generally in your ~/.fabricrc
which will be used for connection to the gateway, regardless of whether env.user has
been overwritten by 'provisioning'.

This means we can delete and recreate, and reprovision, a node in a cluster with our
common fab tasks, such as:

* Delete node (plus ssh and salt key references)
* Recreate node from fresh template (eg via vcloud-launch)
* Bootstrap salt with `fab provisioning zone:{env} workon:{node} bootstrap_minion`
* Run highstate as normal