Adding unit test.

Bug fix: It is possible to create infinitely-recursive schemas, where a
type's child can reference back to the type.  The walker now keeps track
of which element QNames it has seen before, and when it walks them, lets
the visitor know it has already seen the element (and its attributes and
children will not be traversed).