Allow creation of dynamic objects and array mutation with dynamic objects

As requested for the browser.

@tgoyne 

@GreatApe please test this to make sure this allows everything you need to do. The test ```testDynamicArray``` has an example of moving an element in an array using dynamic objects and the current interface.
More redundant type checks.