Refactored LogstashFormatter to use the jackson streaming api where possible.

This results in a measured 10% performance gain.

The only functional change is that the 'tags' field is no longer written if there are no tags.

The unit tests provided accurate functional coverage to verify that no other functional changes were made,
and the resulting json is structurally the same as the previous json
(although field ordering is not guaranteed to be the same).