Theme js

This is a big one, it creates the global Messenger object, creates a way for themes to add their own js, and renames some internal classes to be more descriptive.

Thoughts @TrevorBurnham @bosgood?