Modified HashMap, HashSet, and LruCache so the 'Key type parameter requires the 'comparison' constraint. This helps us avoid equality/comparison issues which can occur when the key doesn't support comparison; later, we'll replace the list-based sets and maps with the standard F# sets and maps, thereby providing an asymptotic speedup.