(sramp-134) Support for user defined derivers (for user defined types)

Lots of changes to user defined types and custom artifact derivers. Users 
can now contribute their own derivers that will kick in when user
certain user defined artifacts are added to the repo.  This alows users
to create logical user-defined artifact models, complete with derive
content.