First attempt at error handling using Either, I'm not satisfied with it though
Merge branch 'master' into either
More intuitive name
Preprocessor returns Seq[Result[LogicalLine]] instead of Result[Seq[LogicalLine]], so that we can emit both the preprocessor error and later errors
Newline node is obsolete
MathCompiler can report up to one error per logical line (though InlineParser won't pass them on)
Update documentation
Code generator function generates one node at a time, in preparation to convert to Result/Either
Correctly report physical line numbers in `Failure`s
Bugfix with previous commit
MathExpr nodes retain position information, at least relative to their logical line
I think I'm going to have to give up on satisfying IntelliJ
Split alignment validation into a separate stage
Code generator produces results instead of throwing exceptions
Propagate errors from partial results of later stages
Line numbers are properly computed for errors that occur in later stages
Remove the implicit conversion, it doesn't add much
Report alignToken errors instead of silently ignoring them
Merge branch 'either'
To simplify the code generator, Paren, Brace, and Bracket are now subclasses of Wrapper

Conflicts:
	math/src/main/scala/com/prealpha/pipe/math/MathCodeGenerator.scala
	math/src/main/scala/com/prealpha/pipe/math/MathParser.scala
	math/src/test/scala/com/prealpha/pipe/math/MathCodeGeneratorTest.scala