On config failure, tell users about --configtest

I'm not sure this is the best approach, but notifying users about it
can't hurt I suppose. Suggestion from @jamtur01
Fix edge case in json filter if source == target

This now permits:

  filter {
    json { source => "example" target => "example" }
  }

Also fixed a bug where @timestamp would be parsed as a Time even if it
wasn't intended to be at the timestamp of the event.

One example is like so:

    # This text in field 'example':
    '{ "fancy": "pants", "@timestamp": "whatever" }'

    # This filter:
    filter {
      json { source => "example" target => "example" }
    }

Previously, this would attempt to call 'merge!' on the 'example' field
which would fail because at the time it was a string. Now it works :)
Merge pull request #1007 from jordansissel/configtest-flag-helper

On config failure, tell users about --configtest
Only do @timestamp parsing if 'target' is set.
Merge pull request #1022 from jordansissel/json-filter-fixes

Json filter fixes
Fixed wording for clearer documentation, replaced filter with output
for more realistic example.

Conflicts:
	docs/configuration.md

(Cherry-pick from #977)
Merge git://github.com/logstash/logstash