Custom reporters

**Note**: Shane asked me to make this PR so we could discuss custom reporters. As I said earlier:

> I think it would be a cool feature to have, but the way I implemented it definitely wasn't the best.
> And we should think about the design a lot more carefully if we actually want it in Scratch.

That said, this is quite fun to play around with.

---

Rewrote the interpreter and added the user interface to support custom reporters.

![screen shot 2014-05-11 at 14 36 56](https://cloud.githubusercontent.com/assets/1578238/2949962/fc825cd2-da14-11e3-8d48-644707be8901.png)

![screen shot 2014-05-11 at 12 58 21](https://cloud.githubusercontent.com/assets/1578238/2949960/f9667704-da14-11e3-8c59-c1021a53d334.png)