Refactor captureMessage and captureException

This implements some of the behavior present in GH-6 as well, including the "extra" parameter and tags that are array based