DynamoDS/Dynamo — pull request #2490 by Steell (2014-09-19 18:49:06+00:00)
Title: Code reoganization in order to reduce casting and manual typechecking

@ikeough

Unfortunately merging with master has obfuscated the actual set of changes I've made. You should review the actual commits instead:

* 0af81e6d1bc16e56e78a6ba7b0ca3fe00bddc18a
* ad5a2bec6e13630d4cba10838812683b3ed2bba0

Semantically, the only real difference is what we had discussed around the Selection lists: The list of raw selection (of type `TSelection`) is kept internal to the selection classes (but we expose a public `IEnumerable` instance for querying). All output from the node is kept in the `SelectionResult` list (also only exposed publically as an `IEnumerable`). Selection is set via the `UpdateSelection` method.