move CSV formatter to new stream-based API

Now, formatters accept filehandles for input, and gives documents when
read() is called.

This appears to remove the need for the trim feature, so it's been
deleted.
move JSON formatter to new stream-based API
move YAML formatter to new stream-based API
use yaml formatter in yfrom

Everything should be using the formatters for maximum portability.
use yaml formatter in yto
use yaml formatter in ymask