PARQUET-90: integrate field ids in schema

This integrates support for field is that was introduced in Parquet format.
Thrift and Protobufs ids will now be saved in the Parquet schema.

because it's not clear what they are. That was a way to delegate part of the equals/hashcode to the subtype but I just rewrote it differently as I was adding id into equals.