Fix #5 non-deterministic solution (GC).
Fix #5 non-deterministic solution (GC).

The solution array pointer was being read from the C model and then copied to a
Storable.Vector in Haskell.
However, if the C model was garbage collected after the array pointer
was read, but before the array was copied, the array became invalid, and
invalid elements were copied into the Storable.Vector.
Fortunately the solution is simple. We just need to touch the foreign pointer
after reading the array, to keep it from being collected.

amosr/limp-cbc,amosr/limp-cbc,amosr/limp-cbc