Implement naming for unknown shape fields
Summary:
Carries shape's unknown fields status through naming.
This introduces the following type:
```name=nast.ml,lang=ocaml
nast_shape_info = {
nsi_allows_unknown_fields : bool;
nsi_field_map : shape_field_info ShapeMap.t;
}
```
This diff is all about propagating `shape_info.si_allows_unknown_fields` through into `nast_shape_info.nsi_allows_unknown_fields`. A subsequent diff will integrate the named information into typing information about the shapes.
Reviewed By: andrewjkennedy
Differential Revision:
D4625662
fbshipit-source-id:
e55e23dbf737a3c6385e116aaa4211f8a045d276