BUG: Fix to_json lines with escaped characters
Updates existing to_json methodology by adding is_escaping variable,
which ensures escaped chars are handled correctly.

Bug description: A simple check of whether the prior char is a backslash
is insufficient because the backslash may itself be escaped.

A test is also included (previously included in #14693).

xref #14693
xref #15096

 - [x] closes #15096 (#14693 was previously closed by author)
 - [x] tests added / passed
 - [x] passes ``git diff upstream/master | flake8 --diff`` (used ``pep8radius master --diff`` instead)
 - [x] whatsnew entry (does not seem necessary, but let me know if I should add)

## [Current coverage](https://codecov.io/gh/pandas-dev/pandas/pull/15117?src=pr) is 84.75% (diff: 100%)


> No coverage report found for **master** at ab0d236.

> Powered by [Codecov](https://codecov.io?src=pr). Last update [ab0d236...92f4e01](https://codecov.io/gh/pandas-dev/pandas/compare/ab0d23653a6e8264769b50c27b3b8efc95c6ab70...92f4e0122912cb11233a7946caf661a0026f38c1?src=pr) pls add a whatsnew note (0.20.0 bug fix section) Thanks, @jreback. I made the changes you requested, rebased to master, and squashed the commits.

Please note: I revised the test to include a test for escaped characters in keys and values (i.e. columns and data of dataframe). Previously I was only testing escaped characters in values/data. lgtm, minor comments and some linting issues to fix. ping on green. thanks! nice concise PR! keep em coming Thanks, @jreback. I appreciate the reviews and feedback.

FYI: There is no change in runtime performance from the bug fix. This is somewhat obvious, but it was a good exercise for me, so I thought I'd share. I reran the following performance tests from #14408:

Master:
```
In [5]: df = DataFrame(dict([('float{0}'.format(i), np.random.randn(N)) for i in range(C)]))
In [6]: %timeit df.to_json('foo.json',orient='records',lines=True)
10 loops, best of 3: 135 ms per loop
```

This branch:
```
In [5]: df = DataFrame(dict([('float{0}'.format(i), np.random.randn(N)) for i in range(C)]))
In [6]: %timeit df.to_json('foo.json',orient='records',lines=True)
10 loops, best of 3: 135 ms per loop
``` @rouzazari great!

note that we already have some asv's for perf testing, I am not sure how much they cover for json though, you can have a look in pandas/asv/benchmarks/packers.py

if you think some cases need more, then please PR! Got it. I'm not too familiar with this area, but I'll take a look.