Fixup 9134fea: forgot to include snapTip.toString in changes.

Optimize and update with renaming.
Rewrite tip plugin to be clearer and more optimized.

Rename, since in hindsight, I can't handle
abbreviations: cls, $ts, $ctx, $t, _$tCurrent, c,
cDir, dir, evt, checkDir, tPosition, tWidth,
tHeight, etc.

Also differentiate between compound direction
objects and direction components.

Simplify options property by merging it into the
instance, so accessing option properties is
shorter and faster. This also gets rid of some
accessors.

For CoffeeScript, stop using _.each when a list
comprehension would do, and use do statements when
appropriate. Update chaining statements per parser
improvements. Keep one-liners short.

Minor white-spacing and reformatting.
Allow tip html to be customizable via tipTemplate.

Also use block strings now that we're using Groc.