BUG: Fix for json lines issue with backslashed quotes
 - [x] tests added / passed
 - [x] passes ``git diff upstream/master | flake8 --diff``
 - [x] whatsnew entry

This is an additional fix to:
https://github.com/pandas-dev/pandas/pull/14429
https://github.com/pandas-dev/pandas/pull/14391
## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/14693?src=pr) is 85.20% (diff: 100%)
> Merging [#14693](https://codecov.io/gh/pandas-dev/pandas/pull/14693?src=pr) into [master](https://codecov.io/gh/pandas-dev/pandas/branch/master?src=pr) will increase coverage by **<.01%**

```diff
@@             master     #14693   diff @@
==========================================
  Files           143        143          
  Lines         50787      50787          
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
+ Hits          43273      43274     +1   
+ Misses         7514       7513     -1   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last update [f26b049...9908a7c](https://codecov.io/gh/pandas-dev/pandas/compare/f26b049786624ed983f2718687c23e3f1adbb670...9908a7c1ecbf0329f54025a200ca1c74fc88d62c?src=pr) This fixed an edge case, but ultimately there are a bunch more.  I'm moving away from using this to the following code:
```
        from io import StringIO
        import jsonlines
        with StringIO() as buf:
            writer = jsonlines.Writer(buf)
            writer.write_all(ujson.loads(s))
            writer.close()
            buf.seek(0)
            return buf.read()
```

Their solution is fairly simple, but I'm not comfortable enough to update the vendored ujson package.
https://github.com/wbolster/jsonlines/blob/master/jsonlines/jsonlines.py

I've added the following PR to speed it up a bit:
https://github.com/wbolster/jsonlines/pull/24 @jreback I think the right way to do this is to use jsonlines or to build its functionality into ujson rather than trying to transform the json formatted output.  What do you think? jfyi, `StringIO.getvalue()` is typically used to obtain the value as a a string, instead of `.seek(0)` and `.read()`. also, there is no need to use `StringIO` as a context manager, while it does make sense to use `jsonlines.Writer` as a context manager:

``` python
import io
import jsonlines

buf = io.StringIO()
with jsonlines.Writer(buf) as writer:
    writer.write_all(ujson.loads(s))
return buf.getvalue()
``` @joshowen 

> @jreback I think the right way to do this is to use jsonlines or to build its functionality into ujson rather than trying to transform the json formatted output. What do you think?

IIRC from the original issue, @aterrel and I had discussed this. Though its pretty performant now, the correct approach is to put it in the custom ujson code that pandas uses. That is somewhat more involved (though probably pretty straightforward).