Support compound keys (<a-f>, <c-[>, etc.) in passkeys

This implements support for compound passkeys, which must be separated from other passkeys keys by a space. We require spaces since
* we can't map to the ` `(space) key, so it doesn't cause any problems, and
* we need to be able to have `<` and `>`, since some people have bindings using them.

This is a follow-up to an idea from the conversation on #1211.

@z0rch, @smblott-github, can you take a look, possibly in conjunction with #1140?
This is pinched from the background page, so (for now, at least) I think it's best leave as is.