Clear orphan markers from other other sessions that get left behind

Fixes #2669 
@devoncarew 

- Keep track of session that marker was created on so that we can remove it from anywhere.
- Set the focus back to the editor from navigating so that `onKeyUp` events get caught after navigation occurs
- Encapsulate the logic for marker hover handling into one place in `AceManager` (`_setLinkingMarker(ace.Range)`)