introduce L and R in place of manual pointers

This was the sed script I ran on src/*.js and test/unit/*.js

s/\.prev\>/[L]/g
s/\.next\>/[R]/g
s/\.firstChild\>/\.ch[L]/g
s/\.lastChild\>/\.ch[R]/g
rm a debugger and a console.log
change .first and .last to .ends[L] and .ends[R]
add a Point class, and some methods to get points

node.adjacentPoint(dir) gives you the point in the direction (dir) from
the node.

node.extremePoint(dir) gives you the point at the start or end of its
children.
fix the up/down cache by using a point
add prayDirection and directionalized jQuery helpers

prayDirection prays that the argument is either L or R.

jQuery helpers are directionalized shells for .{append,prepend}To,
.insert{Before,After}, and .{first,last}
implement Cursor::{insertAtPoint,insertAdjacent}

insertBefore and insertAfter now use insertAdjacent
add .appendDir, which directionalizes {append,prepend}To
add Cursor::hopDir, which directionalizes hop{Left,Right}
.moveDirWithin directionalizes move{Left,Right}Within
.moveDir directionalizes .move{Left,Right}
Selection::{extend,retract}Dir
Cursor::selectDir directionalizes select{Left,Right}
move Point class to the beginning of tree.js
add and use directionalizable maker for Point
Point::init doesn't need default arguments
rm Cursor::insertAt #cosmetic

Cursor::insertAdjacent and insertAtPoint are used instead now
Cursor now extends Point, uses _super
fix latex test case to use .ch[L] instead of firstChild
fix mouse selection: anticursor is now a Point