ArrayOf* types ganeration as separate classes

Fix #160 in ```3.x``` branch
How about using PHPUnits [`assertContainsOnlyInstancesOf`](https://phpunit.de/manual/current/en/appendixes.assertions.html#appendixes.assertions.assertContainsOnlyInstancesOf) here?