Add dereference option

Hey @AvianFlu, this is the pull request for the "inflate symlinks" option I asked you about on IRC. Unix `cp` has a `--dereference` option, so I decided to call it "dereference" rather than "inflateSymlinks" to stick with the established terminology.

I also added tests for the default (dereference=false) symlink handling while I was at it.

When dereference=true, we consider broken symlinks to be errors. (The `fs.stat` call will return an ENOENT error when it encounters a broken symlink, and we simply don't attempt to handle this.) This mimics the behavior of Unix `cp`'s `--dereference`.

The first commit is mostly a massive re-indent; all the important stuff is in the second commit.