Fix menu completion for scrolling and wrapping

Menu completion would crash PowerShell when invoked from the end of the buffer.
The display also got messed up when the selected completion caused the line
length to exceed the buffer width and hence required wrapping.
Add MenuComplete function

Some folks won't like the way menu complete works and the cleanest
way to invoke it is as a bindable function, so I'm adding that.

I considered emulating zsh more closely, but zsh is a little weird in
when it removes the possible completions.