PARQUET-113: Add specs for LIST and MAP annotations.

Draft specs for using `MAP` and `LIST` annotations. This doesn't include a `LIST_ELEMENT` addition to the thrift definition, it is documentation only.

Please help verify that this can read all existing map and list data correctly!
The schema is still valid if there is no value type. This would happen when projecting just the map keys. Do we also allow it when all of the values would be null to encode a set?