fix: handle case when storage events are synchronous

Hi,

I was having some issues with ngStorage on windows phone 8 (ie 10). I found out that storage events were fired synchronously, and it messed up the in-memory/webStorage merging. I worked around this by postponing the code in the event listener to the next event cycle with setTimeout(fn, 0).

Cheers