MWMessagePack: improvements to test suite, exception handling, array detection

* Throw InvalidArgumentException
* Use data provider in unit tests
* Detect associative arrays without copying

Per Tyler's post-merge review of Id2833c5a9.

Change-Id: Iec6b135238ca5da3002944066843102f0ae8d23d
Merge "MWMessagePack: improvements to test suite, exception handling, array detection"