Experimental feature: render text vertically aligned along middle.

So lower and upper case letters are vertically aligned along middle
rather than their bottom.

I'm trying this to see if the consistency within vertical line space is
worth it (so all lower case and all upper case strings appear
vertically centered rather than biased).
Removed g_GoPath global, moved putenv()s into main process.
Various minor improvements, mostly noop.

Assume shortcut action is non-null.
Throw error in a situation that supposedly doesn't happen anymore to
find out if it actually occurs.
Improved go error filtering to skip first line only if it starts with
'#'.
Noted that Widget::CheckHover() logic could use improvement.