Int96 support

This adds an Int96 java class and the necessary methods throughout the read and write paths. The Int96 class itself is a simple ByteBuffer wrapper that can easily be either extended or refactored out -- in contrast to initially implementing with Binary and having a messy refactor to change it. Initially, I've added support for plain and plain-dictionary encoding.

Tests are passing, and the changes are kept within parquet-column. Other modules will currently fail with `UnsupportedOperationException`.

This isn't ready to merge yet, but I wanted to get it out for review as soon as possible. Please feel free to comment on what needs to be done!