Major reorganization, and implemented Jasmine testing

This is a major change to the builder codebase. Some changes:

- moved to an OOP style
- separated out many of the components into independent modules
- new callback system between modules
- added reaction dragging and membranes movement

Some features are probably a little broken, so I'll clean this up before the merge.