ArrayOf* types ganeration as separate classes

Fix #160 in ```3.x``` branch
A comment explaining what this branch of the code does and why it is necessary would be very helpful.

Many parts of the PHP SoapClient are not very well documented so any underlying logic related to this can be hard to grasp and/or remember.