Set server hostname to {stage}.{domain}, as necessary

Note this involves first passing stage into provisioning script (and subsequently into playbook), then updating /etc/host{s,name} and running `hostname`
Merge branch 'master' into 40-set-hostname
Bypass hostname checks if stage is not defined (eg, running `vagrant provision` directly)
Updated to use `hostname` and `replace` modules

Both modules should be (hopefully) in ansible's 1.4 release, until then providing them here as custom lib modules:

* hostname module, see ansible/ansible#3940
* replace module, see ansible/ansible#4889
Merge branch 'master' into 40-set-hostname
Replace manual passing of stage with use of ansible_fqdn fact
Revert "Replace manual passing of stage with use of ansible_fqdn fact"

This reverts commit 09cf623b0f43e4224fea20823e87b12604d9d1a8.
Removed custom hostname module (after 1.4 release), misc cleanup of common tasks
Merge pull request #45 from genesis/40-set-hostname

Set server hostname to {stage}.{domain}, as necessary