3.4/develop

Fully embraced the composer way of doing things, added requirement of PHP 5.4+, and added some fancy new 5.4 stuff.
Same as above, perhaps the original code with `factory` is more readable?