Replace integer exit codes with proper exceptions
Use Composer autoloader

I've refactored a bit to take advantage of PSR-4 autoloading
(http://www.php-fig.org/psr/psr-4/).

This is much neater in general, but I'm not happy with how
app/system/exceptions works. Because the classes need to split into
their own files, this leads to a lot of clutter for empty named
exceptions.

The obvious secondary bonus is that now we're set up to use Composer for
dependency management.