ArrayOf* types ganeration as separate classes

Fix #160 in ```3.x``` branch
In what situations do `$this->restriction == 'struct'` not imply `$this->element->localName == 'complexType'`?