Improve console rest api memory usage by reducing copies

ActiveResource + RestApi + HashWithIndifferentAcesss make too many copies of the data retrieved from the server or received from #new.  Also, the default RestApi class creation behavior for nested resources is too error prone and results in difficult to debug errors.  This pull request:

* Changes the default behavior for nested objects to expose them as a raw hash (string keys).
* Adds a new HashWithSimpleIndifferentAccess for use with the default hash-like objects we get back - it avoids an extra copy of the contents
* Avoids extra copies during creation - this does introduce the possibility that an object passed to the resource may be mutated after creation.  The answer in that scenario is - don't do that.

Should reduce memory allocation on REST API calls by 3-6 times.