Improve error handling for QUOTA_EXCEEDED_ERR

Private browsing in Safari throws `DOMException.QUOTA_EXCEEDED_ERR` when trying to `sessionStorage.setItem(...)`. This pull checks `sessionStorage.length` (always `0` when private browsing in Safari) before re-throwing .

Also `npm install` was complaining about the `1.8` version number, but `1.8.0` works fine.