Split selector tests into separate classes.
Added ITemplatedControl interface.
Added IVisual interface.
Added Moq to unit tests.
Separated visual and logical tree into interfaces.

IVisual and ILogical, duh.
Moved Parent property to visual.

Visuals have parents too.
Removed the code contracts /shit/.
Selectors return linked list of matches again.
Code contracts crept back in, the cunt. I hate it.
Make our simple Contract class throw an exception.
Match inside/outside template.

Only match outside template before Template(), only match inside
afterwards.