Add Category model

- register subclass within the app
- update transaction to use the newly model

More improvements towards #5 

/cc @fcduarte @amitbharadwaj