Fixed some data races.
Made searches parallel.
Decided that "Ashes to Ashes" was a better match.

So now we don't search for just "asheok" because that's a bit
restrictive.
***BROKEN*** Switched to a new caching method.

This doesn't compile because I wrote these after a different patchset
I'm committing next, and code completely changed in that patch still
references m.Cards.List as a []*Card.
Identical similarity algorithms. New concurrency.