keyval_decoder: convert 'MSG a=b c=d' to title and json

- support for quote-escaped values
- set payload to stringified json
- pass message fields via heka TOML
- ParseTitleAndKeyvals handles '\n'
I think this might be a bit clearer if you had a function that JUST extracts the key/val pairs from a string.

You could also do it recursively (only if you like it better), something like:

```go
func findKeyValPairs(s string) (map[string]string, error) {
  out := map[string]string{}
  key, val, rest, err := findKeyValPair(s)
  if err != nil {
    return nil, err
  }
  if key = "" {
    return out, nil
  }
  out[key] = val
  next, err := findKeyValPairs(rest)
  if err != nil {
    return nil, err
  }
  return mergeMap(out, next), nil
}
```