check return types of formatters

and show error messages when formatters fail
validate that text display data is text

at DisplayObject construction time
protect javascript from invalid mime-type data

everything is a string, if anything else is sent,
drop it so it doesn't show up in the notebook document.
handle (data, metadata) in @check_return
revert output area changes
validate output types in append_output

validates from files, as well as from kernels
xpects typo
test append_output with invalid data
image formatters allow both bytes and unicode (b64-encoded)
b64 unicode literals for images
Merge pull request #4565 from minrk/format_check

various display type validations

to protect notebooks from invalid display data, and add informative errors for invalid data.