fix #1367 use `expando.value` instead of deprecated `.nodeValue`

Chrome and Firefox dev tools log deprecation message of `.nodeValue`
which may unnecessarily pollute applications' logs.

The alternative `.value` seems to be supported by all browsers
(tested down to Firefox 3 and IE7)
fix #xxx Storage event issue

This commit makes sure storage events do not cause errors when the stored
values are not JSON, or when events are not listened to.