-fix getSubExpression() bug case "((expression))". Now the algorithm
takes into consideration any open brackets within the subexpression and
compensates by allowing an extra closing bracket into the sub
expression.
-fix subexpression order bug by changing the subExpression stack to a
queue
-add some debugging code (can also be used to watch how the parsing
algorithm works, and it's pretty damn awesome to watch)
-revert subEqStack change back to being a stack
-fix addToQueue() bug where it would put the sub equations in the wrong
order by replacing the "null"s in the numstack before adding to queue
-fix expected result of test 23 and 24 (turns out computers are smarter
than me xP)