trim operation pending commands
trim keys in visual mode
tidy up code
clean up
new key parsing code
move input parsing code around
add selection if none is found
fix #500 - remove init .on_load() for Windows and Linux

It doesn't seem to be necessary and causes problems when large files are
loaded from Goto Anything.

(Or rather, it should not be necessary as long as the loaded view fires an
.on_activated() event, which should happen after Goto Anything is closed or
any other panel or overlay is closed. We could hit an error if there was any
case where .on_load() is the only event fired before the user starts sending
keys to the view, but I haven't seen any such case.)

On OS X, initializing .on_load() is still needed when the app is coming from a
windowless state.
#506 - switch to visual mode if there are non-empty sels in the view
c and s should not eat up trailing new line character on empty lines
implement Ctrl+G in normal mode (same as :f)
improve macros
#508 - improve x
prepare release