abstracts process of removing datatips
adds mark and remove approach to handling existing datatips
cleans up core code for datatips
cleans up event code for datatips
moves arrowLength onto the datatipsData object
datatips aren't drawn if plot is a ConstantPlot
lintifies