Fix some compatibility issues

- Use `String.charAt(index)` instead of array like syntax for browser compatibility.
- Use `Array.slice(index, length)` instead of `Array.slice(index)` for browser compatibility.
stmd.js:  Added memoization of inline parsing.
New strategy:  did parseNewlines, parseString.
Did parseBackslash (used to be parseEscaped).
Shell of parseEmphasis.
parseEmphasis: added Strong and shell for triples.
Finished parseEmphasis.

This seems to work properly.  We now get proper results for
`***hi**`.
Did parseBackticks.
Did parseEntity.
Did parseHtmLTag.
Did parseAutolink.
Cleanup.
Completed conversion to memoized strategy.

Test suite runs, but many failures.
Fixed rewind on parseLabel.

14 test failures now, all with emphasis.  IN most of all of these
cases, the examples in the spec seem to be mistakes, given what
the spec says.

More troubling, performance is down from around 220 to 83.  This
needs investigation.
Fixed reMain regex for better performance.
Handle case with 4+ delimiters in a row.

Spec says to skip these.
Simplified parseEmphasis.
spec:  change nesting order of strong/emph in ***a***.
Revert "spec:  change nesting order of strong/emph in ***a***."

This reverts commit 49a03b7666e2901d1ab2813fc0bdd23968d22979.
Special-case ***xx*** as strong/em.