Update to PSR-4
Add appropriate documentation.