allow nested hashes and doc fix

This Commit allows the use of nested hashes in the mapping function. It
also allows the use of log stash variables in both the key and value of
the map.

Additionally I updated the documentation so that it specifies the hash
syntax as opposed to the Array syntax. The array syntax worked because
it was silently converted to a hash.

This fixes #1323
I wonder if we could improve this by moving this `mapping` concept into the JSON codec?

Proposal:

```
output {
  http {
    ...
    codec => json {
      object => {
        "foo-%{field}" => "%{whatever}"
        ...
      }
    }
  }
}