Fix for #2399 and add properly type constructors for AdaptiveComponent, DividedPath, DividedSurface

### Issue

`AdaptiveComponent.ByParametersOnFace` was not working properly.  There were two issues here:

1)  The element tagging mechanism was broken in `GeometryObjectConverter`.  This prevent Surfaces from being properly tagged with their Revit `Element` References.  It was an oversight for when the `Surface` edge loop partitioning work was added in.  It's now fixed.  That's the first commit.

2)  The constructors for `AdaptiveComponent`, `DividedPath`, and `DividedSurface` erroneously took `object` as the argument in their constructors.  This reflected the fact that they accept `Element*Reference` types, `Curve`s, `Element`s, and `Surface`s where appropriate.  This makes the nodes more tolerant, but also broke replication guides because all of the type information for these constructors was blown away.  That is, even a `List<Surface>` matches `object`.  This adds hidden constructors to support all of the non-standard types.  That's the second commit.

### Unit tests

All of the unit tests still work, while a new unit test was added for `AdaptiveComponent.ByParametersOnFace`.

### Issue references

#2399 

### Reviewers 

@ikeough