fixes #24 (GH): correctly reposition caret after 'undo'
p clips the caret to line
fixes #22 (GH): enable user to enter normal mode in empty buffer
fixes #23 (GH): h and l should not do anything on an empty buffer
v in empty buffer should not attempt to extend the selection
partially fixes #10: v,i,( selects text between parens