Element name cycle bug

Given an object graph created from classes like this...

```c#
public class Foo
{
    public FooValue Value { get; set; }
}

public class FooValue
{
    public string Value { get; set; }
}
```

...which produce xml like this...

```xml
<Foo>
  <Value>
    <Value>abc</Value>
  </Value>
</Foo>
```

The name cycle (Value->Value) causes the inner class' properties to remain uninitialized.