release.py: Teach the clean-dist "remove unsupported releases logic" to consider, not only the not-latest releases within each minor line, but also the antepenultimate minor line (and any minor lines even older than it), as unsupported.
release.py: Teach the clean-dist "remove unsupported releases logic" to
consider, not only the not-latest releases within each minor line, but also
the antepenultimate minor line (and any minor lines even older than it), as
unsupported.

To this end, make Version objects hashable and comparable.

* tools/dist/release.py
  (Version.__serialize,
   Version.__eq__,
   Version.__ne__,
   Version.__hash__): New.
  (clean_dist): Separate the 'which versions to keep?' logic, and teach it
    that the most recent release from the antepenultimate line is also to
    be removed.
  (clean_dist.minor): New.

git-svn-id: f8a4e5e023278da1e04e203c7fe051e3c4285d88@1800225 13f79535-47bb-0310-9956-ffa450edef68

YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion,YueLinHo/Subversion