Allow mis-matched brackets like [a, b)

HalfBracket constructor now just takes the character, control sequence
and side it is, and searches for an opposing one (not necessarily
matching). (Search variable renamed from `node` to the more descriptive
`opp`.) If one is found, its and the opposing character and control
sequence are passed to the BracketGroup constructor, which saves them in
a such a way that it can halve to the right HalfBracket.

Parser now calls BracketGroup constructor with arguments based on the
characters immediately after each of \left and \right, like it should,
rather than always a matched pair based on the character immediately
after \left.

I believe resolves mathquill/mathquill#150.