Runtime 2.0) Modules system

The runtime is now divided into modules that are only added if
necessary. Some runtime code has been rewritten for the new RuntimeData
format, but there’s still plenty left.