Batch up addClass and removeClasses, introduct binding finalizations

This introduces the concept of finalizing the bindings on a node. Instead of firing dataChange on each binding initialization we batch them up until we are done parsing the current node. At the end of parsing we flush the queue, which can greatly reduce the number of layout recalculations and repaints required.

#### Reviewers

@SoapyIllusions @nickjs @pushrax @jahfer