Implemented ILogical.
Merge remote-tracking branch 'origin/master' into logical-tree

Conflicts:
	Perspex.Controls/DataTemplates.cs
	Perspex.SceneGraph/IVisual.cs
Moved VisualTree extensions into own namespace.

So that they don't pollute the whole Perspex namespace - you now need to
"opt-in" to the visual tree.
Reinstate Descendent selector tests.

Now we have logical tree back.
Make ContentControl child be logical child.

The control this is created by the ContentPresenter now appears as the
logical child of the parent ContentControl.
Added missing Ids to templates.

And allow ContentControl to not have a ContentPresenter in its control
template, as one isn't needed for TreeViewItem for example.
Bind TextBox.Text two-way in template.
Use Control.ApplyTemplate to apply template.
Make ItemsControl items be logical children.
Oops, only commited half of last change.
Display logical tree in DevTools.
Make logical tree work for TabControl.

It only contains the currently visible tab - I'm not so happy about
this...
Make logical tree work for ScrollViewer.
Merge remote-tracking branch 'origin/logical-tree'
Moved some more properties out of Control.

Border and Foreground properties didn't make sense there.
Fix compilation, no Roslyn :S
Merge from Grokys