First pass horizontal panning  #cherrypick

Since a wrapping behavior for math is ill-specified, mathquill fields
now pan like <input/>'s.

So for dumb reasons, CSS2.1 specifies that the baseline of an
inline-block that is overflow:hidden is its bottom margin edge [1]
(not for no reason, I admit [2]). For now just set vertical-align:middle
to look reasonable for the common case, eventually I'll adjust the
vertical-align numerically in JS (after all, I already have
Node::expectedCursorYInside).

[1]: http://lists.w3.org/Archives/Public/www-style/2013Jul/0188.html
[2]: http://lists.w3.org/Archives/Public/www-style/2013Jul/0471.html

Note the comment above &:after[3].

[3]: https://bugs.webkit.org/show_bug.cgi?id=35443#c1

The margin-right was switched to margin-left in order to fix a 1px shift
when the cursor is at right edge in Firefox.  The cursor had a negative
`margin-right` so when it's at the right edge, it overflows which
increases the `scrollWidth1 and since `.scrollHoriz()` is pushing to
scroll as far right as possible, the entire editable scrolls to the
right by 1px.

Shrink textarea to smallest nonzero width and height so it won't affect
the minimum scroll{Width,Height} of the container. This took quite a
while to track down the other day, the only symptom was that the
scrollWidth was a weirdly big number, there's not a lot of people
talking about what affects scrollWidth. (Must be nonzero so that
textarea is visible and hence focusable.)

The basic idea behind `_.scrollHoriz` is to scroll by a minimal amount
while maximizing the amount of the selection shown, and while keeping
the cursor within inner bounds of the textbox (i.e. 20px from the
edges).
Fix defunct keyboard selection

https://github.com/mathquill/mathquill/pull/261#issuecomment-37909258
https://github.com/mathquill/mathquill/commit/32a48e4a4f2cd3ecaedcf36faac5c84fe590acc9#commitcomment-5721473
I somehow forgot to update `seln.first === cursor.next` to
`seln.ends[L] === cursor[R]`. This caused the keyboard to only select in
one direction.
Fix horizontal panning with mouse selection

https://github.com/mathquill/mathquill/commit/32a48e4a4f2cd3ecaedcf36faac5c84fe590acc9#commitcomment-5734244
Merge branch 'dev' into feature.nowrap

Conflicts:
	src/services/keystroke.js
	- `feature.nowrap` added .scrollHoriz() calls to
	  Node::keystroke()
	- 1bbe5a4afb20670774b636fc0c90dc9e2b3da583 on `dev` deleted some
	  unnecessary return values also in Node::keystroke()
Fix editable fields 6px wider than they should be #stupidBoxModel
Rm unnecessary newline #whitespace #cosmetic
Move scrollHoriz out of keystroke.js into own file

It's also called by mouse.js and textarea.js, shouldn't be in
keystroke.js.
Remove unused style ruleset #cleanup

https://github.com/mathquill/mathquill/commit/32a48e4a4f2cd3ecaedcf36faac5c84fe590acc9#commitcomment-5763557
Remove unnecessary and bug-triggering style rules #cleanup

These (actually, just the width) are triggering a bug in Webkit causing
the whole page to jump around:
https://github.com/mathquill/mathquill/pull/261#issuecomment-38333601

And are totally unnecessary, the textarea is outside of and can't affect
the scrollWidth of the .mathquill-root-block:
https://github.com/mathquill/mathquill/pull/261#commitcomment-5763880
Remove unnecessary .scrollHoriz() call

In fact, it was causing demo.html to throw an exception on load, because
it calls .keydown(), which eventually calls .keystroke() without a key,
which makes this .scrollHoriz() call that has no preceding cursor.show()
call.
Merge pull request #261 from mathquill/feature.nowrap

Feature: first pass horizontal panning  #cherrypick