Add Projects, Viewports

We want a model that represents a collection of URLs and Viewport
widths. A good name for this seems to be "Project", although we had also
considered the more general "Group".

When we introduce the concept of "Sweeps", the Sweep will operate on a
Project and simply run Snapshots for each Url and Viewpoint combination
in the Project. That way Diffux could be used easily for multiple
projects (e.g. Causes, Trackmail, and Stars).

Moving viewport widths from Urls to Projects allows the set of URLs on a
project to be easier to manage, and more consistent. Additionally, it is
likely that users will want the same set of viewport widths for all of
the URLs in their project anyway.

Closes #25

Change-Id: Ia662348e677bc9c131586d0d3cf7128941d758da