Improve handling of optional whitespace everywhere

... by removing any notion of it from the parser. Turns out this wasn't
necessary at all. I was speaking with @jeffh about some of the problems I
was having with the parser not being able to handle optional whitespace around
blocks with curly braces and he pointed out that whitespace is not ever significant
whereas  newlines and semicolons are.

This fixes a pending spec and also greatly improves parsing of methods with more than
one line where there are multiple empty newlines.