Server side
===========

Added Category model
 - Category model has a self referential join which allows for an
   arbitrary number of subcategories to be defined.
   For the sake of simplicity we will allow only a 1 level deep
   nesting (A category can have a sub category, but a subcategory
   cannot)