use Composer to manage and load dependencies

Work in progress, but pretty good already.