PARQUET-119: add data_encodings to ColumnMetaData to enable dictionary based predicate push down

To implement predicate push down based on dictionary we need to know if fallback happened.
If all data pages are dictionary encoded we can use the dictionary for predicate-push down.
If not we can not.

CC @nongli @rdblue @isnotinvain @tsdeng 
What about the following?
struct EncodingCount {
  required Encoding encoding;
  required i32 count;
}
...
13: optional list<EncodingCount> data_encodings_distribution;