Add support long strings

This is not perfect and I'm sure a better way could be found.  It negatively affect performance on strings:

master:
```
BenchmarkScanNumber 50000000          58.6 ns/op    51.23 MB/s
BenchmarkScanString 20000000          98.4 ns/op   101.58 MB/s
BenchmarkScanLongString  5000000       489 ns/op   116.42 MB/s
BenchmarkScanEscapedString  10000000   149 ns/op   120.50 MB/s
BenchmarkReadString 10000000           153 ns/op    65.04 MB/s
BenchmarkReadLongString  5000000       557 ns/op   102.18 MB/s
BenchmarkReadInt  50000000            62.5 ns/op    79.99 MB/s
BenchmarkReadFloat64  10000000         163 ns/op    97.89 MB/s
BenchmarkReadBool 50000000            62.0 ns/op    64.52 MB/s
ok    github.com/benbjohnson/megajson/scanner 23.022s
```
This branch:
```
BenchmarkScanNumber 50000000          54.2 ns/op    55.36 MB/s
BenchmarkScanString 20000000           105 ns/op    94.56 MB/s
BenchmarkScanLongString  5000000       540 ns/op   105.52 MB/s
BenchmarkScanEscapedString  10000000   153 ns/op   117.46 MB/s
BenchmarkReadString 10000000           153 ns/op    65.02 MB/s
BenchmarkReadLongString  5000000       598 ns/op    95.16 MB/s
BenchmarkReadInt  50000000            64.5 ns/op    77.50 MB/s
BenchmarkReadFloat64  10000000         175 ns/op    91.14 MB/s
BenchmarkReadBool 50000000            60.6 ns/op    66.05 MB/s
ok    github.com/aybabtme/megajson/scanner  23.710s
```

I think this is a hack and it's not very clean. I'd like to have input as to how this could be done better. Should there be another func that is delegated to once `n == len(s.scratch)`?

I'll try that out next.