Adding selection support

The multiple commits are caused by me uploading code via Github. I will rebase it all before I merge. 
Just curious, why would we need that? And how could it be possible, that the `ch`-value of the cursor position is lower than any indentation?