Three introspection related changes required in order to support the CLI:
* support storing the managed object definition in managed object path elements (this can be a sub-type of the definition referenced by the element's relation). Also make managed object paths generic on the type of managed object they reference.
* add support for retrieving the properties/relations defined by a managed object definition not including those that are inherited
* add a convenience method to managed object definitions for recursively retrieving all the child definitions.