Adds some error handling for quota exceeded, better testing of session storage, better handling of URI/hash encodings

Pulls from a number of other people's commits and pull requests. Also fixes a spaces/tabs issue that was keeping the builder from running.