Fix multidimensional array assignment, as variable, normal/static property

- Make object's array_multi method use internal code instead of duplicated.
- Include tests for each type