ClassOrganization Changes

Previously the user would call a RhinoObject class to create and
instance and add the geometric object to the model. This caused
problems for methods like rs.CopyObject that return a GUID. This meant
that classes needed multiple constructors, or methods to deal with
object constructor and GUID inputs.

Changes were made to that each RhinoObject has a superclass that takes
a GUID, and constructor classes that add the object to the model.