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.