Fixes and support for IE 6 and 7

Implement polling for IE 6 and 7 (which don't have the storage event)
and for Chrome (workaround for Chrome bug #152424).

When listening on the storage event, update the in-memory cache based
on the current value in browser storage, instead of using the
"newValue" field from the event object.  This avoids a possible race
condition where the item might have been changed between the time the
storage event is fired and when the event handler is called.