So much documentation is needed, it's true.

The `options` thing here is parallel to jwcrypto's generateAssertion [1], where `options` lets you specify things like duration and clock skew.  I'd like to extend that code to let the caller embed arbitrary stuff in the payload.  The `options` parameter here would then be used to pass that stuff.

But since the typical calling case will probably always be `getAssertion(audience, callback)`, I wanted to make sure it would work like that and people wouldn't have to stick an empty dictionary in there.  But again, you're right that some documentation is needed and it wouldn't hurt for me to stick some comments in the code, either :)

[1] https://mxr.mozilla.org/mozilla-central/source/toolkit/identity/jwcrypto.jsm#159