const_cast in protocol_methods list read resize branch
const_cast in protocol_methods list read resize branch

Summary:
D33009407 has more context on this.
TL;DR is that I'm adding new list-like type that
behaves mostly like vector<const T> but internally has vector<shared<const T>>.
And all iterators are const for safety in this container. Hence here:
```
for (auto&& elem : out) {
  elem_methods::read(protocol, elem);
}
```
`elem` is in fact `const elem_type&` which does not compile without `const_cast`.

Reviewed By: yfeldblum

Differential Revision: D34071819

fbshipit-source-id: d83b8f7040be689140193dee030e4f17e906b663

facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift,facebook/fbthrift