Use a mutable structure during JSON deserialization of arrays and objects

This pull request changes the deserialization process within JsValue to use a mutable structure internally during deserialization.  The current immutable process does not offer adequate performance when deserializing very large arrays or objects.

This implementation does not leak mutable state outside the deserialization process: once done, the ListBuffer is converted back to an immutable structure.

Performance tests are also provided.