First pass at fixing this issue

Without checking that a URL is still registered our unload routine
falls into the trap of erroring out if someone already unregistered the
URL manually.  I'm adding a check here before attempting to register.

Another approach I've been examining as well is to capture all the
unload functions returned and run them when the unregister function is
run on the URL; this would remove the unload function from the queue.
Probably the better fix.
Alternate solution

Here's my alternate solution.  Instead of allowing the unload functions
to accumulate and check for registered stylesheets on unload we
actively remove them from the unload queue using the unload callback
provided.
removing the unnecessary double check, all the unloaders will be called by the event so this isn't needed
adding an additional registered check, this doesn't capture the system error I was looking for but it good practice as part of the overall userstyles tests
Merge pull request #7 from clarkbw/userstyles-unloader-alt

Merging in the new userstyles unload manager