CDK-203: Add sync to DatasetWriters.

For Avro and CSV FileSystem appenders, sync is implemented as flush
followed by hsync. For Parquet, there is no implementation because there
is no way to flush or sync parquet files. For HBase, sync calls flush.

This adds tests for CSV and Avro sync behavior, which doesn't currently
work for the local FS, but does for HDFS.
All implementations are now either SPI or internal implementation classes, so this is not very useful for users. We should add a page explaining durability in the docs.