Added Hidden/Locked Patterns, Experimental Dual

Adds Hidden Pattern.
Adds Locked Pattern.
Adds a partial X-Wing pattern. Untested.
Added a DualCell class. Rather than storing a position's possible
values, it stores a value's possible positions.
In its current state, most puzzles can be solved except for extremely
difficult ones. Generally they reach an impasse within one cell of a
complete solution. At this point, it becomes easier for a person to
guess values, as making a graph of dependencies (i.e. solving by colour)
is just as mentally intensive.