Composer redesign

This is my attempt to understand and clean up the composer a bit. It also (roughly) an implementation of the ideas from https://github.com/chaplinjs/chaplin/issues/643#issuecomment-22055533.

I’ll explain the details in the next couple of days. This PR is more for discussion because there are a lot of breaking and unrelated changes here.