Breakup of common into tiny pieces

Trying to make some headway in making our code more modular from the CS meeting with @phamann, @stephanfowler, @Rich-Harris, @indeox etc.

This now has common broken into many pieces so new modules may now only include the utils they want.

## Discuss:
* Was utils the right name? Not a mega problem as it's easy to change.
* Should mediator be a singleton? Assuming it will have to be.

Do we write tests for these functions? I would say yes.

## TODO:
Go through code and start removing `common.js` dependency.

![EXPLODE!](http://iruntheinternet.com/lulzdump/images/gifs/falcon-punch-computer-tower-explode-1344381265j.gif)