day 11: Only generate source-floor-legal moves
day 11: Only generate source-floor-legal moves

This relieves us of the burden of checking source floor legality in the
search loop (we now only need to check destination floor legality).

We can do this because we know that the only way to make the source
floor become illegal is to remove a paired generator while leaving any
other generator.

* A lone generator can always move.
* If there are two generators and either are paired, you can't move a
  paired generator out *alone* (but can move both of them together).
* If there are three or more generators, no paired generator can move
  without exposing its chip. Only consider unpaired generators.

This is another about 15% speed improvement.

petertseng/adventofcode-rb-2016,petertseng/adventofcode-rb-2016