added the ability to provide optional extra data to captured errors and messages

added the ability to provide optional extra data to captured errors and messages,
if `extra` is nil, previous behavior of adding the runtime info is maintained.

this change is not backward compatible as a new argument (which can be `nil`) is added to `NewPacket()`, `CaptureError()`, `CaptureMessage()` and `CapturePanic()`.