Behave correctly when object keys are numeric, particularly when the key is the falsey value '0'

Another point that could be discussed is model's handling of arrays as underlying data.  Model currently converts them to objects which means that although the indices are correct and they can be accessed with `get`, it is no longer array and the methods for working with array data are no longer available.