Extend Cartfile syntax to support pinning to arbitrary branches/tags/commits

#193, retargeted to `0.4-development`.

Resolves #100.
Yeah; the case I ran into was testing *other* properties of a subsystem going through a method, but dying in earlier tests of that method. Probably not relevant here; and the added weight of `?? …` distracts from the test :cry: