Adding Minigrace compiler

The Minigrace compiler now compiles code on change, and the run button
will execute the compiled code. The compilation happens on a Worker to
avoid freezing the interface.
Added boot.js and files.js modules

In order to minimise coupling and maximise cohesion, files.js and boot.js were
separated out from setup.js. boot.js exists to contain the behaviour of the file, as
we did not want side effects when the files constructor was called.