Scrooge Write Support

This pull request adds write support for scrooge in a few steps:

- 3d1d88f is most of the PR. It makes `ThriftWriteSupport` abstract, and pulls out all of the tbase-specific functionality into `TBaseWriteSupport`. I originally tried to go the path of least resistance - basically, remove the type constraints on `ThriftWriteSupport` and then subclass it in `ScroogeWriteSupport` - but I ran into a few issues, chiefly that `void write(T record)` on `WriteSupport` would've needed a cast (because of the lack of the `RecordConverter` abstraction in `ReadSupport`). The end result, though, seems actually pretty nice, and matches the reality that there are multiple implementations of thrift. I think `ThriftReadSupport` probably deserves the same treatment, but that seems out of the scope of this PR. Similarly, `ThriftBytesWriteSupport` could probably be a subclass of `ThriftWriteSupport` now, but I left that out of the changeset. If you'd like either to be part of this PR or a separate PR, let me know, I'm happy to do the work there.
- 869137b and 29dcadd do the (now simple) work of adding a `ScroogeWriteSupport`, `ParquetScroogeOutputFormat`, and adding write support to `ParquetScroogeScheme`, along with tests.