__build.py uses toposort based on 'require' statements now.

This way, anybody who is reading the sourcecode will find it easier
to understand the dependencies within the project. They will need
to check only the 'require' statements (which are similar to 'import')
to find out what they need to know before trying to understand the
current module. You're welcome :P