[2.0] Model boot improvements

 - compiler: Move model-sources cfg to models.json
 - executor: Split model boot into two phases
 - compiler: Sort models topologically

/to @ritch please review. This patch implements the changes we were discussing on Friday.
It would be helpful if this test title described what we get out of topological sort. Below is an example of a good test title:

> detects circular Model dependencies

This might even be good enough:

> sorts models, base models first

...anyways just a nit-pick feel free to ignore.