Help with Parquet PR to remove specialization

Hi there.

I have a need at $DAYJOB to use Parquet but internal policies require the use of stable rust. As such I took a swing at removing the requirements in the apache-parquet crate to deal with specialization.

The bulk of this was to provide default implementations of reading and writing data from the format, with half the defaults being some form of error or panic. It is a little tricky (IMHO) to provide a fully static handling for the format which is what leads to some of the abuse.

Right now the PR removes the feature, but IMHO is very rough and could do with more work. In particular for the first pass I leaned to heavily on std::mem::transmute as a C-Style cast for things where its possible to know the type. I do however feel that these casts are brittle in the light of maintenance and would like to see if others in the community can figure better approaches to removing some, if not all the std::mem::transmute's I added to the code.

The PR is here: https://github.com/apache/arrow/pull/8698 and I would love a meta review if possible from interested people.