comment that propagateExactDeps is just for tests
rework earliestCompatibleVersion

troposphere needs to be changed to enforce the following constraint:

  "For any package version N@V with earliestCompatibleVersion E, if
   N@E is a published version, then its earliestCompatibleVersion is
   also E."

In this way, earliestCompatibleVersion partitions the set of versions of
a package into compatibility classes. There's no need to do comparisons
on ECVs; instead, you just can check to see if two versions have the
same ECV.

This makes some of the ECV logic simpler.

It should not longer be allowed to depend on a version that does not
exist (although this should really be an immediate error instead of an
unsatisfiable constraint like it is with this commit).