Tasks are attached to milestones, not series

Make tasks related to milestones, and associate milestones to the
actual *branches*. That's an elegant way to solve our need to track
"backport to milestone-proposed" tasks, solving an old issue we had
in Launchpad (and for which we were abusing "Fixreleased").

Each milestone is associated to a branch. There are three types of
branches: master (the future), release (the milestone-proposed branch,
when it's around), and stable/*. Milestones are mandatory, there is a
default 'undefined' milestone for when we don't really know when that
work will hit in the master branch.

In normal times we'd have the following unreleased milestones:
master branch -> undefined, havana-1, havana-2, havana-3
stable/grizzly branch -> 2013.1.3

When the milestone-proposed branch is created just before havana-1, we
move the havana-1 milestone from master to release branch:
master branch -> undefined, havana-2, havana-3
release branch -> havana-1
stable/grizzly branch -> 2013.1.3

That lets us track release-backporting tasks (targeted to
release/havana-1) separately from normal work (targeted to master/*).

At the final release, the release branch is just renamed to stable/* and
a new release branch is created for the new cycle.

Change-Id: Ia212ae9c40549fe484362cbd5b3f323a467edb76
Merge "Tasks are attached to milestones, not series"