feat(change-detection): Initial implementation of new change-detection algorithm.

The classes are not yet hooked up to angular scopes yet, so so far this is a stand alone code.