Handle complex expression nesting correctly.

Previously, the formatter would get confused if it didn't indent enough
for several levels of expression nesting which later turned out to be
needed by later lines.

This addresses that. It does negatively impact perf (about 3x) but I
hope I can regain some of that in later optimizations.

Fixes #49, #66, #75, #83, and #84.

R=pquitslund@google.com

Review URL: https://chromiumcodereview.appspot.com//802513004