Replace readline completion

It seems like I've been frustrated by readline left and fucking right.

In this case, using readline completion, the completer function gets
called to populate a list of strings. That's cool, but it gets called
every single time the displayed completion changes even if the prefix is
the same.  This falls flat on its face (in terms of performance) with
more than a few hundred completions.

I'm not sure if it's readline interacting with python that's adding so
much overhead, but if it's taking like 30 milliseconds to generate the
completions and over a second to feed it into readline, then there's a
problem.

So, I just stopped using it for completion. Since I had to subsequently
hack in custom getc support, and all of the completion generating
infrastructure was present it was pretty trivial.

If it wasn't for line-editing I'd nix the entire library gladly.

I also got rid of help text on completion because it has started to seem
useless and the hook disappeared now. :help is way better. This might
make a reappearance, however.
Proper URL quoting to avoid shell injection