Don't show ahead/behind info if in the middle of a rebase.

This information hardly applies while one is rebasing.
Don't use "local integer" in zsh scripts.

integer parameters are local by default. This was sometimes leading to
strange errors being displayed in the prompt.
Delete the setprompt function once it's been called.

No need to pollute the global namespace with a function that only
needs to be called once.
Don't bother trying to compress the path to a negative length.

In certain extreme scenarios, compressPath() was being asked to
compress the path down to a negative length. This was leading to
plenty of errors.
Clear the vcs_info %m parameter before sticking my stuff in it.

Some recent upgrade started putting a tonne of text in hook_com[misc]
while in the middle of a rebase, which totally breaks my prompt. So
I'm just going to clean it out before I start appending all my
additions.
Change how the git-ahead-behind function works.

It now echoes it's result instead of sticking it in hook_com[misc]
directly. Needed for an upcoming change.
Combine all Git vcs_info hooks.

If I stick these all in one big hook, I don't need to worry about the
order in which they are called.
Add Git rebase progress to prompt while in rebase mode.

This is actually quite nice to have when dealing with a big run of
rebase conflicts.