RFC: Add support for %{shortfile} and %{longfile}.

This PR adds support for %{shortfile} and %{longfile} formatting verbs, mirroring the built in logging modules Lshortfile and Llongfile flags, respectively.

Unfortunately, because the calldepth has to be passed through Format(), it is a breaking API change. I could make it non-breaking by adding a separate FormatterWithCallDepth interface like so:

```go
type FormatterWithCallDepth interface {
  Formatter
  Format(calldepth int, r *Record, w io.Writer) error
}
```

Then doing a type cast. I didn't do this initially because a) it will be slower and b) I think it's fairly unlikely people have implemented their own formatters.
The change to the calldepth will also break backwards compatibility. But I'm with you. I don't think anyone have added their own formatter or utilizes the calldepth. I'm a little bit hesitant as if this change is good or bad though. It was a while since I wrote this code and not sure how I reasoned about it back then, but I believe it was to follow the "convention" found in the log package. Just as you outlined in the comment. ;)