AddSubCategoryPage now shows category groups

Refactored DefaultCategories code. It now depends on three classes: one
base class with common functionality, one composite class, and one class
representing an actual category. These new classes and DefaultCategories
are now in the 'LeavinsSoftware.Collection.Program.Categories'
namespace.

These tweaks to DefaultCategories enable code in AddSubCategoryPage to
recognize groups of categories and display them as groups.