Using sets when possible instead of lists.

15.txt runs in 55s.
Slightly better search logic