Add time_format option to SyslogParser
Merge pull request #381 from fluent/add-time_format-option-to-syslog-parser

Add time_format option to SyslogParser
Fix to test nested Element objects collectly
 * "v == obj" in spec/config/helper.rb checks as Hash, only for ROOT (these are always blank)
 * To check equality recursively, add Element#==(o)
   * and fix to check all of name,arg,attributes and elements
parser.rb: Make ':' optional after pid

In some cases, there is no ':' after the pid, the following log would fail to parse

```
<77>Jul 11 15:14:01 my.example.com run-parts(/etc/cron.daily)[8231] finished logrotate
```

resulting in

```
"_source": {
    "data": "<77>Jul 11 15:14:01 my.example.com run-parts(/etc/cron.daily)[8231] finished logrotate",
    "message": "invalid syslog message data=\"<77>Jul 11 15:14:01 my.example.com run-parts(/etc/cron.daily)[8231] finished logrotate\"",
    "@timestamp": "2014-07-11T19:14:01+00:00"
  },
```

This PR aims to make those ':' after the pid optional