Singularity tweaks

* Fix an off-by-one error that caused the singulo to get stuck along contaiment fields. For a 5x5 singulo, it would check 6 squares ahead (correct for a step forward) and then 6 squares to the sides (incorrect). Now it tests 6 squares ahead, 5 to the sides. This is technically wrong for the growth checks but they check every direction anyways, so it's ok.

* Made the singularity drift in all cases and not stop next to lattices.

* In process(), moved the growth checks after the movement attempt so it will take a step and then grow rather than take a step, drift into the walls, and then attempt and fail to grow as part of the next process().