Issue #29: Overhaul database to use ManyToMany where appropriate.
Merge pull request #32 from rogerskw/iss29

Issue #29: Overhaul database to use ManyToMany where appropriate.