Types within containers were previously named TODO. This sorts it out so
they're named as their most resolved type. The current implementation
skips Typedef names.
When we were previously removing allocators, we were only able to work
with containers whose allocators appeared as their last template
parameter.
Now we can replace allocators in the middle of a parameter list.
This fixes tests for folly::sorted_vector_set.
This change is fully backwards compatible with the old ContainerInfo
parser, as it is just adding new fields.
The old fields will continue to be used by legacy OICodeGen until that
is removed.
Also add a README to document the format.