Refactor ArrayOf to use the PHP SPL ArrayObject class

* This means that consuming classes can access the ArrayOf as if it were an array rather than the previous implementation which required access to ->data[...]
Refactor MapOf to use the PHP SPL ArrayObject class

* This means that consuming classes can access the MapOf as if it were an array rather than the previous implementation which required access to ->data[...]
Add checks for integer index for ArrayOf and for string key for MapOf.
wip: add project removal test for LexEntryModel, update Sense, Example and MultiText tests.