Add nxlog parser

See issue #9

I switched `SOURCE_HOSTNAME` to `SOURCE-HOSTNAME` to respect old school DNS conventions disallowing underscores (which logstash grok patterns [observe](https://github.com/elasticsearch/logstash/blob/master/patterns/grok-patterns#L27)).
Testing for a hash like this look super elegant; BUT, unfortunately it makes test failures hard to understand.

Consider if `module_name => "in2"`; then the failure is:

```
       Expected {"pid"=>"14506", "host"=>"SHIPPER-HOSTNAME", "event_received_time"=>"2014-06-23 09:54:13", "module_name"=>"in2", "module_type"=>"im_file"}, but got {"pid"=>"14506", "host"=>"SHIPPER-HOSTNAME", "event_received_time"=>"2014-06-23 09:54:13", "module_name"=>"in1", "module_type"=>"im_file"}
```

ie; its pretty hard to see why the `insist` failed.

So, nice as the above is, ` insist { subject['@shipper']['module_name'] } == "in2"` makes the test more usable for detecting failures, since the error message is:
```
Insist::Failure:
 is, `Expected "in2", but got "in1"`
```