Performance tweaks

- Turned pxlsByVal from a list of lists into a list of sets. The reason for this is that pxlsByVal[curVal].remove(pxl) (line 66) has linear runtime for lists, but for sets, remove() runs in constant time.

- removed the unnecessary equality check on line 51

- some minor changes

For the example bw pictures, the program now runs 48x faster on my machine.