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 
I like this idea. Should we change the metadata to be:
map<Encoding, i64> per_encoding_num_values?

It would be nice to know quickly, for example, how effective dictionary encoding was?