Add public API option 'sumStartsWithNEquals'

Docs, code, unit tests, visual tests.

Resolves #304
Add test case for total width of math fields

Specifically, a test case that 3f963a445a303b17699ad3d45f2b4f98105385c9
"Fix editable fields 6px wider than they should be" actually does what
it says it does, so setting the width of a math field correctly sets the
width, including any scrollbar, like other replaced elements like real
textareas.
Move border to container rather than root block

...so that the border can be styled (or removed) by code external to
MathQuill without having to know any internal CSS class names like
"mq-root-block".

(The box-shadow has to be on the container too because the root block is
inside and therefore on top of the container, so the box-shadow would
cover the changed border color. Even if it didn't, it makes the most
sense staying with the border.)

The padding absolutely has to be on span.mq-root-block, though, because
it's overflow:hidden, so without the extra padding inside its scroll
area, the cursor is hidden when at the left edge.

This does mean the dimensions are no longer like what I thought replaced
elements were like and uses the brain-dead Netscape box model, but it
turns out that at least textareas and inputs actually use the Netscape
box model anyway (in Chrome 34, at least): http://jsbin.com/qoceda/3/edit
Which makes sense since, like we want MathQuill math fields to be, their
border is configurable with external CSS. In fact, their padding is too,
so it actually kind of sucks that our padding can't because its not
the container that's overflow:hidden.

Recommend -w to view diff.
Combine .mq-root-block { ... } declaration blocks #simplify

Same selector, no reason they weren't combined in the first place.
Fix math field width test error message

https://github.com/mathquill/mathquill/commit/8b68c00f1bb7b066915343f409744236542134b7#diff-d5537ea249c99a3fcb91effad7262312L149
Fix incorrect usage of `sumStartsWithNEquals` option

https://github.com/mathquill/mathquill/pull/338#discussion_r18552362
Fix configuring handlers on inner math fields

Recommend -w to view diff.

The original test case for handlers only tried passing them in to the
MathQuill.MathField() constructor, turns out in the constructor is the
only place where we called root.setHandlers(). So passing handlers
directly to the constructor worked, and globally configuring handlers
also worked on MathQuill.MathField()'s, but no other cases worked,
.config() doesn't and neither does the InnerMathField constructor.
In fact, there was no way at all to set handlers on
\\MathQuillMathField{}'s.

Now we ensure that .config() works, on both MathQuill.MathField's and on
\\MathQuillMathField{}'s, and that globally configuring handlers works
on both MathQuill.MathField's and on \\MathQuillMathField{}'s.

Also, fuck the Law of Demeter. Less indirection is what this feature
needs.
Merge pull request #349 from mathquill/fix.handlers-on-inner-fields

Fix configuring handlers on inner math fields
Merge pull request #340 from mathquill/feature.container-border

Move border to container rather than root block
Merge pull request #338 from mathquill/feature.sumStartsWithNEquals

Add public API option 'sumStartsWithNEquals'
Fix arguments to handlers completely wrong #ImAnIdiot

The hooks on the root block that don't take `dir` as their first
argument, many of them take the cursor as their first argument, which is
an object and hence truthy and gets passed to the handler as `dir`,
which is completely wrong.

Closure and check `i` instead, since we know the first 3 handler
names take `dir` and the rest don't, like we did before #349:

https://github.com/mathquill/mathquill/commit/b8f191482b7d310a80c69b6eebacdff85db8eb12#commitcomment-8465453
Merge pull request #351 from mathquill/fix.handler-args

Fix arguments to handlers completely wrong #ImAnIdiot