DNM: CoreModularization for DynamoRevit

This makes DynamoRevit compatible with the changes coming in from the DynamoCore Modularization pull request: https://github.com/DynamoDS/Dynamo/pull/3389

#### Reviewers
* [ ] @Randy-Ma 
* [ ] @ikeough 
* [ ] @lukechurch 
* [ ] @pboyer (Make sure this works with your Core Separation stuff)
This class is currently broken:  We were fetching the cached value from a previous execution of the node connected through the input port in order to populate the DropDown with the family instance parameters.

In order to get the cached value, we needed an instance of an `EngineController` in order to perform a `MirrorData` lookup. Post-refactor, `NodeModel` no longer has access to an `EngineController`, so we need a new way of getting the input data.

Possible solutions:
1. Use the VM data bridge to get the input after a graph evaluation. This would require evaluations to update the new DropDown information whenever the input is changed. This can be designed to update in a way similar to the Watch node.
2. After an evaluation, cache the `MirrorData` (or the .NET marshalled equivalent) on each `NodeModel`. This can be done at the `HomeWorkspace` level after an evaluation takes place, because we have access to an `EngineController`.
  - We may eventually refactor the graph representation of a workspace so that `NodeModel` instances can't access other `NodeModel` instances through their connectors. This would complicate solution 2.