[vim] swap case in visual block

@heppe @mightyguava 
This patch allows '~' to swap case of the highlighted text in the visual block selection. I also tried to update the final cursor positions in some cases. Please review and Suggest necessary changes.