Allow extra call depth to be configured for reflection

This allows logger methods to be exposed at the package level without breaking the function name logging. For example you can do:

```
var Debug = Logger.Debug
var Info = Logger.Info
```

and set ExtraCallDepth to 1 on the Logger, preventing the logging from recording things like "Debug·fm"