Refactored command parsing slightly

This should make it easier to support bash completion.
Added support for shell completion

Completion only works for the 0install command, but it can complete
subcommands, options (it shows the right ones for the given command)
and arguments to commands.

The README.md file explains how to install the completions.
Make bash completion work with ":"

When you do "0install select http://<Tab>", bash sends us:

  ["0install", "select", "http", ":", "//"]

Try to reverse this so we can still complete sensibly.
Don't try file expansions if :// is in the name

Bash expands http://<Tab> by listing all the files in the root directory.
Merged bash and zsh completion