PSR-4 Compliance

This will be the first in successive PR's that aim to bring the entire library in line with PSR-4 -> PSR-1 -> PSR-2.

This is a work in progress, and I am only submitting the PR so I can check the build status and I'm too lazy to add it to my own travis.

There have been several patches that have either included or proposed PSR compliance, but have been mixed with other changes. My series or PRs will over them all, in steps, so they are easier to follow and we can argue about each set of changes as the come. (Looking at you PSR-2 spaces)