Fix Cursor::select() test case typos #ImAnIdiot

I'm dumb and this should have been done with the rest of
711aefaaf793cf91e72b63e974780e80b79c01ee, which added to
Cursor::select() reliance on a selection fragment actually
being created, and moving the cursor (which will call blur on
the cursor's previous parent).

https://github.com/mathquill/mathquill/pull/266#issuecomment-38870694
Move {MathBlock => Node}::selectChildren

So now MathCommand overrides selectChildren.

This cleans up TextBlock slightly, which is nice, and the
Cursor::select() test case that monkey-patches selectChildren on a plain
node looks more congruous, as the monkey-patched method tail-calls the
method it overrode, almost like a _super call
.selectChildren() now returns selection fragment

Simplifies the contract of .selectChildren() and de-duplicates the
assignment to cursor.selection. Plus, reduces manipulation of cursor
properties from outside cursor's own methods.
Make Selection() take fixed number of arguments

The shortcut is only ever used in one place, and resulted in a
hard-to-debug infinite loop that could've been immediately debugged
if a prayer had failed instead:

When writing the previous commit, at first I forgot to change the
signature of Node::selectChildren() from (cursor, leftEnd, rightEnd) to
(leftEnd, rightEnd), but changed everything else. So,
Node::selectChildren() was being called with 2 arguments, leftEnd
had what was actually the right end of the selection and rightEnd was
undefined, so Selection()'s constructor was in one-argument mode and the
cursor's selection was always a one-node fragment of what should be the
right end node. EditableField::select, then, which does

    while (ctrlr.cursor[L]) ctrlr.selectLeft();

infinite looped, since the selection never changes.