TreeRunner Bug Fixes and Scrubbing

This pull request is contains the following:

1. Fixes an IE8 event listening issue where TreeRunner's nextTick uses addEventListener which is unavailable. To remedy this, I created an addListener method in globals.js that creates add/remove listeners based on browser compatibility. I updated the /xd files to use this method.

2. Fixes two IE8 event issues involving stopPropagation (not available) and event.source comparison. The former is resolved by using event.returnValue = false. The latter is resolved by using weaker comparison (== vs ===). There may be a better way to check this (origin matching, maybe). What do you think?

3. Cleaned up TreeRunner a bit to make it more readable, hopefully faster via caching, and minify better. Broke out the communicator creation and dependency download stuff into separate methods.

All tests pass in Chrome. TreeRunner tests now pass in IE8 (they didn't before).

Please let me know if you see any issue with these changes and I'll update accordingly.