Simplified subclassing non-workspace models

- Went back to a single GitModel class as the base model, everything now
  basically checks for _meta to see if it's been registered on a workspace.

- RelatedField serialization fixes

- Moved RelatedField handling when cloning model from workspace to field's
  add_to_class method
Renamed make_path() to get_path_for_id(); less confusing, more descriptive.
Changed BlobField to use a descriptor
Moved RelatedField.to_model to a descriptor, added requires_meta decorator
Reorganized path-related utils, added glob() in utils.path