We don't want to attach events to elements that already have them (i.e. somebody creates two instances of FloatingTips, perhaps the second after a content refresh via XHR), so we set a flag on the element via Element.Storage to denote the event attachment
Since somebody might want to detach the events at some point for various reasons, tweaked the class a little bit to add a "detach" function.
var myTips = new FloatingTips('a.tips');
// down the road somewhere
// and maybe we want to re-enable them again...
Attach / detach now take arguments to allow for arbitrary addition or removal of tips
Show / hide functions can now take either an event argument (default), or an actual element to manually show / hide tips for said element