Add Dashboard model

A dashboard can contain many repositories and is used to allow
different teams to display different things.

Note that this doesn't change the way in which authentication is
handled - it's simply a grouping of repos.