Improved `^` movement

`^` movement was not correct when already positioned at the first character
on the line, added specs and a fix.