Break up Block.ts

Also migrate DomUtils.ce to use a map for attributes.


This is too bad, since I feel forEach has far greater readability and has the added benefit of not leaking instance variables without `let`. What's interesting is that if you have to invoke a function (in order to fix the instance value, say for use in a callback) forEach ends up being faster on IE11 but slower on Chrome (http://jsperf.com/foreach-vs-loop-with-function) 

However since we're just calling appendChild, and we don't care about fixing `child` I will concede that a for loop would be faster in this scenario.