Let JFace calculate return offset after insertion.

If we insert text in front of our current position, this offset will
change. The problem is that JFace's insert might actually add tabs or
even expanded tabs, which would throw off our calculation.

Instead register the old location, do the insert and then jump to the
corrected location.

Fixes #566.