WebExtensions: Refactor commands API

This simplifies things a bit, removing a duplicated Command struct.

Fixes a handful of leaks.

Namespaces the Action name so its private-per-extension.

Adds strict accelerator parsing.

Ensures accels are added on load and removed on unload.
4 jobs for pgriffis/web-extension/commands in 8 minutes and 19 seconds (queued for 39 seconds)