MathML reader:  better handling of nested styles.

This fixes handling of

    <mstyle mathvariant="bold">
      <mi mathvariant="normal">x</mi>
    </mstyle>

and avoids redundant styling commands.
Merge pull request #50 from mpickering/master

Stripped outer EGrouped from MathML reader output
Small improvements to demo page.

Note:  mathjax preview seems to make the text in the text box
unselectable.  So for now I've commented it out.
More small tweaks to texmath.html demo.
Added link to demo to cabal description.
Updated tests for #50.
More fixes to cabal description.
TeXMath writer:  Avoid double styling commands.

Test case:

<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
  <mrow>
    <mstyle mathvariant="script">
      <mi>ℱ</mi>
    </mstyle>
  </mrow>
</math>

Previously we got \mathcal{\mathcal{F}}, now we get \mathcal{F}.
TeXMath reader: Handle \phantom.
OMML writer:  Handle \phantom.
test-texmath:  added --regenerate-tests option.
Updated omml tests with new phantom.
TeXMath reader:  rewrote braces to avoid double EGrouped.
TeXMath reader:  Avoid grouping single elements.
Added ctrlseq to TeXMath reader; solves \notin parsing problem.

Previously the parser for '\not' would succeed in '\notin';
we now check for now following letter.
TeXMath reader: improved handling of primes.
TeXMath writer:  Use real text environments for EText.

(instead of \mathrm, etc., which just style mathematics).

This should help with round-tripping from native -> tex -> native.
Previously text would turn into identifiers.
Removed EUp, EDown, EDownup.

Added a 'convertible' boolean parameter to EOver, EUnder, EUnderover
instead.

This simplifies a lot of the code.
TeXMath reader: Use EUnder/Over for \stackrel, \overset, \underset.
Purely cosmetic changes.