Rework indentation to just consider the last non-whitespace line.

This is much faster, fixing
https://github.com/JuliaLang/julia/issues/9254.
Ensure we correctly indent 'else' and 'begin' blocks.