Implement camel cursor movement
This change implements camel cursor movement.
- Camel cursor movement will only get triggered if you are in a word. If you are not, the old behaviour will happen. This also takes care of
_
/ snake case movement as well. - Word deletion / selection will also follow this patttern
I have added a lot of test so that cursor's back and forth movement is identical and as expected.