Defined categories.  This closes #1.
Defined subcategories using setoid predicates and subsetoids.
A bit of renaming.
Merge branch 'dev'