Homestyx hydra

R1:268a9ced78da

Implement subproject/milestone conflict resolution rules

Summary:
Ref T10010. When you try to add "Sprint 35" to a task, remove "Sprint 34", etc. Briefly:

- A task can't be in Sprint 3 and Sprint 4.
- A task can't be in "A" and "A > B" (but "A > B" and "A > C" are fine).
- When a user makes an edit which would violate one of these rules, preserve the last tag in each group of conflicts.

Test Plan:
- Added fairly comprehensive tests.
- Added a bunch of different tags to things, saw them…
Repository: R1 hydra
Commit Date: Feb 2 2016