Composer, namespacing, PSR-0 autoloading

If you don't like all of this commit, you can apply a subset of the commits. But this is what I would recommend. If you merge this, please also submit it to [Packagist](https://packagist.org/).