Memoize fingerprints by the FPStrategy hash

* Force __hash__ and __eq__ to be defined for FingerprintStrategy
  subclasses.
* Fix implementations of Target.{transitive_,}fingerprint and existing
  FingerprintStrategy subclasses.