Prep for client split

Prep work for issue #201 

- Renaming database record classes
- Refactored how `DashboardItem.from_json()` dispatching works (based on a class decorator now)
- Added `Dashboard` and `Tag` pure model classes (non database)