Allow upwards traversal of the original AST.

We can store .parentNode properties on the AST nodes themselves
because the original AST is guaranteed to be freshly parsed, with no
duplicate nodes. This last edge case is important: given that every
node has at most one parent, there is no risk of clobbering an
existing .parentNode property.
Add a test of the getIndent function used by the reprinter.
Fix the getIndent function used by the reprinter.

In order to reprint a node that originally appeared at a different
level of indentation, the patcher needs to de-indent the original
lines by their original indentation amount, then re-indent them by the
desired amount.

The previous heuristic for determining the original indentation amount
was easily fooled, but I put up with it because in practice it was
wrong rarely enough.

Here's an example of when it would be wrong:

    function foo(bar,
                 baz) {
        qux();
    }

The previous version of getIndent reported the indentation of the
BlockStatement beginning at the "{" as being equal to the identation
of the "baz" token, when really it should be equal to the indentation
of the "function" keyword.

The new strategy is to find the starting column of the first ancestor
node on a line with nothing before it but whitespace.

Closes #6.
Merge pull request #28 from benjamn/issue-6-getIndent

Fix the getIndent function used by the reprinter