Free hand rotation

Fixes #194.

I hope my viewport calculations are correct.

I also have code which allows for pinch rotate, would you like me to create a PR for that too? If so, should I add an option for it?