Selection methods return their selection target.

For things like divided surface selection, the selection target is the
divided surface. The elements which are returned from the operation are
the tiles on that surface.
Add SelectionUpdateDelegate

Selection update delegate is called when the selection target is
modified in Revit.
Merge remote-tracking branch 'origin/master' into SelectionUpdate

Conflicts:
	src/Libraries/Revit/RevitNodesUI/Selection.cs
	src/Libraries/Revit/RevitNodesUI/SelectionHelper.cs
Merge remote-tracking branch 'origin/master' into SelectionUpdate
Don't throw in ElementMapping Delete.

Throwing exceptions here causes the other document modification events
to not be called, and the rest of the workflow to not evaluate. The
ElementMapping cache isn't being used right now, so these exceptions
don't tell us anything.
On second thought. Throw these, but catch and continue.
Rename method and update messages.

This method is for selecting multiple elements NOT only curve elements.
The name of the method and the selection messages should convey this.
Rename SelectedElement to SelectedElements
Refactor to remove redundant selection code.
Progress commit.
Progress commit.
Refactor to two base classes.

Selection nodes now inherit from only one of two base classes. The
ElementSelection base class supports multiple selection by holding a
list of uniqueids. In the case of single element selection, this will be
a list with only one element.
Add ISelectionHelper interface.
Wire in xaml control and remove SelectionBase.
Bind selection text on node to ToString.
Add sub-element processing.
Add a select faces node.

This required extending the selection delegate to require both a
specification of one or many and a specification of the type.
Conversion between Revit BoundingBox and LibG BoundingBox now uses Revit transform
Remove selection targets.

For reference selection and sub element selections, we can store a
dictionary keyed by element id of elements. This will be handy later for
sorting into lists of lists, but is, currently flattened to adhere to
the original behavior.
Prep classes for separation.