Module loader refactoring

It becomes simpler and lets do new awesome things like runtime JS watch and reloading.