don't 'restore_bytes' in from_JSON

it makes no sense to turn base64-encoded unicode strings into base64-encoded byte strings.  I can't think why we do this, but we should be very careful about testing before merging this fix.

fixes the issue tested in #4036.
update test_extract_output
use cast_unicode in nbformat
test that PNG / JPEG output data are unicode
Test no incorrect 'data:image/png;base64,b' in html files.
stonebig's test shouldn't fail anymore
note that restore_bytes is never used
test binary data passed to output

data is coerced to unicode (cast with 'replace', so no errors)
Merge pull request #4043 from minrk/no-restore-bytes

don't 'restore_bytes' in from_JSON 

It makes no sense to coerce base64-encoded unicode strings into base64-encoded byte strings.

closes #4036