Merge metadata changes from upstream r607
Generated Python files for metadata
Merge code changes from upstream r608
Merge code changes from upstream r609
Merge test metadata change from upstream r610
Merge code changes from upstream r610

Not split out anything equivalent to PrefixFileReader.java
because the metadata is loaded rather differently in the Python
code.
Merge code and metadata changes from upstream r611
Generated Python files for metadata