Abstract functionality to positional_event

positional_event abstracts the functionality that was duplicated between
mousedown, mousedown_in, mouseup, and mouseup_in. This not only
eliminates 100 lines of duplicate code, but allows extension of
positional event firing. In the future, this could mean touch events or
pings from other libraries.