Improved Testing

**Work in progress, Bad Things will happen if this gets merged.**

Replace the existing (minimalistic) PHPUnit testing suite with a more comprehensive one based on [Codeception](http://codeception.com/) which allows for unit, functional and acceptance testing within a single framework.

### Other Things:

* Improvements to Vagrant to make the development environment more rigorously defined.
* Less reliance on manual commands to provision a fully working instance.