exec-729514: Use 'exports' not 'canon'

We're using aliases for exports less and less.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Encapsulate the Canon

Previously there was a set of singleton stores of data, and some
exported functions (addCommand/removeCommand/etc) that manipulated them.
This made it impossible to have more than one set of commands which
made testing importing commands from one place to another hard. So this
change creates a Canon object to encapsulate those stores/functions.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Fixing command transplants

A few changes that fix the way we handle command proxying:
- getCommandSpecs now clones the commandSpecs object rather than
  exposing it to the outside
- Add an 'isParent' property to a commandSpec so the client side knows
  whether or not to generate an exec function
- Create a parent command for the set of imported commands

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Add unit tests

Also some minor tidy-ups for testCompletion.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Add prefix to requisition

With a prefix then we will first lookup what was typed with the given
prefix, before trying the unprefixed version.

The eventual goal is to make the following be equivalent (using git as
an example command)
>> git add -a
>> git commit -m blah
Or
>> context git
>> add -a
>> commit -m blah

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Hack to allow access to Requisition

We want users to stay away from Requisition, but the context command is
going to need to manipulate it, so we allow access to the Requisition
from a context in as nasty a way as possible to dissuade general use.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Add a 'context' command

This allows us to add a magic prefix to commands. See notes in previous
commit.

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Refactor - unindent 'intro' command

Signed-off-by: Joe Walker <jwalker@mozilla.com>
exec-729514: Outstanding work: WARNING WILL REBASE

This branch will be rebased before it is done. You have been warned.