Updating nested values

This commit uses modifyObjectInPlace for the case when you already have a value in the cache but the httpResponse returns modified data for nested values in the cache.

This is pretty straightforward for a simple value and slightly more complicated for arrays. Basically, a new empty array is created and then we iterate through the http response checking the existing cache for potential data to merge before pushing on the list. Finally we splice everything out of the the arrayInstance which removes any cached items that weren't in the response while still keeping the same reference to the original arrayInstance.