Update to new `localStorage` mechanism

This new mechanism now stores data in the folllowing way:

Key   : 'users'
Value : [{id: 'users-1', name: 'clarle'}, {id: 'users-2}, name: 'ericf'}]

This guarantees the order of the values. A in-memory lookup table by `id` is
used to do lookups faster than iterating through the entire array.
Add suggestions from @ericf on ModelSync.Local

* Add try/catch to JSON.parse
* Add a few clarifying comments on `initializer`
* Using clearer conditional assignment style