Rename database record classes

* Renaming database record classes
`Dashboard` => `DashboardRecord`
`DashboardDef` => `DefinitionRecord`
`Tag` => `TagRecord`

Didn’t want them conflicting with the simpler names which will move to
the pure JSON model  classes in `tessera-client`

* Also added delete cascade so we’ll stop orphaning records in the
definition table. Oops!
Formatting
Use a decorator for model classes

Get rid of that big ugly if
Handle all iterables in EntityEncoder
Can remove redundant item_type declarations now
Merge branch 'issue-201-split-model' of github.com:urbanairship/tessera into issue-201-split-model
Web-only Dashboard & Tag model classes

Not used in the server yet, these will be primarily for utilities based
on the upcoming API client
Merge pull request #264 from urbanairship/issue-201-split-model

Prep for client split