handle nulls and escaped strings

`null` and `undefined` blow up on `toString()`, so let's nullify them

`logfmt.log({foo: null})` will log `foo=`, which will then get parsed back as `{foo: null}`

however, `logfmt.log(foo: ''}` will log to `foo=""`, which will then get parsed back as `{foo: ''}`

also, added proper support for logging strings with quotes in them.