Allow specifying a callback

Made it so that you can specify a callback and you get a stacktrace in it. You can then write to the file yourself if you want or do anything else (write to the database).
I'd prefer not to remove these codepaths entirely.  Perhaps there could be a config value to enable the default writing behavior, which would execute first, followed by the callback.

My concern here is that after a SIGSEGV and more importantly, the interrupt of V8, the execution state is not trustable.  For example, the SIGSEGV might have occurred in the middle of some complicated operation that was itself in the middle of a deep stack of JS methods.  V8 could have locks that it is holding or some other transient state.  Calling back into the V8 interpreter at that point could produce an unpredictable result and result in the original error not being logged properly.  On the other hand, presumably, the SIGSEGV is happening inside of a module and that module would have the ability to call a callback, so maybe the danger isn't as much as I fear.  Still, at a minimum, I'd want to have a fallback plan with a stupid simple codepath like the one here - no allocations, no external state, no calls into V8, just a dirt-simple dump of the stacktrace.