Describe commands

Ok, this is the first stage of bug #141. I've implemented a new command called `Help:Commands`, and given it a default binding of `F1`. When you press `F1`, it opens a new document called `zed::commands` and fills it with a sorted list of all defined commands and their current keybindings, including user-defined commands and including custom keybindings (much like the existing `Command:Enter Command` command), but this time in a readable, searchable document!

Building upon this, I intend to expand the command definition to include a description that will be included here as well, but that's a vast and intrusive change, so I thought I'd just pick the low hanging fruit first.