Lots of additional tests. Guard the StatementImpl Enumerator to ensure that once MoveNext() returns false, it doesn't return true until Reset() is called, per .NET semantics