ArrayUtils - minor corrections

- Corrected off-by-one issue; the effect/result is the same (except for empty matrices, in which case the update avoids an Exception caused by `new Array(-1)`) because of the auto-grow array behvaior but it is arguably more correct. (Ref. https://github.com/photonstorm/phaser/issues/1394)

- Fixed `getRandomItem`; it would previously return null for false'y values
  (`false/''/0`) which was against the defined contract.

- Updated documentation / documented types