Enable a Development environment through Vagrant

This is a work in progress and not yet ready to be merged, but this should (eventually) enable us to have a local environment to make development of the salt states way easier.

* Setups up a ``Vagrantfile`` which allows spinning up local servers for various roles
* Fixes states to work properly in both the production environment and the development environment
* Splits pillars into "base", "dev", and "prod".
  * "base" pillars are available to both production and development environments
  * "dev" pillars are only available to the vagrant environment
  * "prod" pillars are only available to the production environment
  * Actual pillar control is managed in ``pillars/dev/top.sls`` and ``pillars/prod/top.sls``.
* Configure the development salt-master so that it will have minions "failhard" to ensure that state ordering failures are not papered over.
* Fixes states so they run correctly the first time.

```console
$ # Spin up a salt-master server, this is required before any other servers will be
$ # able to work
$ vagrant up salt-master
$ # spin up an apt repository server
$ vagrant up apt
$ # Check the status of the servers
$ vagrant status
$ # Log in to the apt repository server
$ vagrant ssh apt
$ # Destroy the apt repository server
$ vagrant destroy apt
$ # Destroy all existing servers
$ vagrant destroy
```