More accurate text selection. Still needs to do better about accounting for kerning.