Emacs: indent relative to enclosing block

This changes the indent to calculate positions relative to the enclosing
block (or braced/parenthesized expression), rather than by an absolute
nesting level within the whole file.  This allows things like this to
work:

    let x =
        match expr {
            Pattern => ...
        }

With the old method, only one level of nesting would be added within the
match braces, so "Pattern" would have ended up aligned with the match.

The other change is that multiple parens/braces on the same line only
increase the indent once.  This is a very common case for passing
closures/procs--the absolute method would do this:

    spawn(proc() {
            // Indented out two indent levels...
    })

whereas the new code would only indent the contents of the proc by one
level:

    spawn(proc() {
        // Indented out two indent levels...
    })