New template parser now mostly/somewhat works.

Note: this commit does not include integration of the new parser with the rest of the application yet.
StringBuffer to read file contents in TemplateRegionParser.
New template parser works quite well. Code is messy.

This specifically includes fixes in the positioning, and added the ability to include or exclude a trailing '.' on chained method calls.
The new parser is now being used everywhere (but in an adhoc way, so the code needs to be cleaned up).
TemplateRegionParser optimisations.

This relies on an api change in ScalaCodeTokenizer.tokenize  in scala-ide proper.
NewScalaTemplateCompiler optimisations.

This mainly consisted of rewriting mixed, matchExpression and caseExpression to never back track by merging matchExpression with safeExpression and expression, and having caseExpression accept just whitespace instead of waiting for plain to later eat it.
Fixed bug in mixed production where it would add an extra '}' even if not parsed.
Better isBrace detection for the template region parser.

PartitionHelper.isBrace assumed that given a token to check, there would only be only brace in the token. This how failed for tokens whose text were '} {'. isBrace now matches any token whose only contents is whitespace and braces.
Fixed syntax highlighting error when template brace precedes magic at.

It's possible for "default partitions" to have "}@" follow by a "{@", in which neither the magic at or the brace get recognised for syntax highlighting.
Fixed backtracking bug in forExpression production.
Cleaned up some code relating to new template parser.
Better template parse error reporting.
Moved backtracking instrumenting into functions.
Renamed NewScalaTemplateCompiler to ScalaTemplateParser & added invalid '@' error checking.
Added error report for caseExpression and fixed bad source position of forExpression.