Fix #266 and a similar problem in partitionM

This restores the `lazyFoldRight` version of `spanM` (after a fashion), fixes the problem #266 with it, fixes a similar problem with `partitionM`, and tests the lot.

The issue was the `as` reference, which used to mean the current tail, but meant the whole seq after `lazyFoldRight` was added.  `partitionM` had its own offending `as` reference.