Fix nullable field type checking for Shapes::idx
Summary:
Consider the following function.
```
<?hh // strict
function test(shape('x' => ?string) $s): string {
return Shapes::idx($s, 'x', 'default');
}
```
This type checks correctly. However, Shapes::idx($s, 'x', 'default') will return null if $s is provided as shape('x' => null). The type checker thinks it returns string, when in fact it returns ?string. This is a bug in the type checker that we need to fix.
Reviewed By: michaeltingley
Differential Revision:
D5615771
fbshipit-source-id:
1bfeca3f603a8dbbdfba11d4780c71be9e307769