Update 1

The domain prioritization function will now always sort correctly.

Resolves an issue where attempting to get rules for a single domain
using an array would freeze safari.

Fix incorrect method name when getting latest and first snapshots.

Ensure rule and special name are lower case when matching rules for
them.

Improved security of user scripts by using the origin event name to
obtain the source ID and doing a reverse lookup from within the
sandboxed injected scripts.

Resolves a security hole where callbacks created with
messageTopExtension were run in the scope of the sandboxed injected
script. This caused the global safari object and all extension
functions to be exposed. They are now instead run as their own injected
user script.

Added a special to preserve crucial default methods so that they cannot
be overwritten by other scripts.

Added .gitignore to exclude compiled.js from being committed.