Add options object argument

Adds options to change the output function (useful for testing) the timestamp function (useful for changing time output to be more parseable) and to give a filter function (for scrubbing logs of sensitive data).