Rewrite backtracking loop to prevent mutability problems

i.e. through the current cell's possibility iterator we hold a mutable
ref to 'self', preventing us from acquiring a mutable ref. This change
works around that by not keeping said iterator around.