add support for functions return by reference

Summary: Parses functions that return by reference, this is dropped during naming.

Reviewed By: @jwatzman

Differential Revision: D1669963
Drop FrameState's ref prediction if type grows to Gen.

Summary: Was hitting this with fixed-point. A value was Arr in one path, and
BoxedArr in the other, and we ended up with a state of
type=Gen,predict=BoxedArr. This later broke upon hitting a CheckLoc<Arr>
as we refined Gen -> Arr, but kept around the BoxedArr prediction.

Add the invariant to the field's comment and checkInvariants.

Reviewed By: @ottoni, @jdelong

Differential Revision: D1668687

Signature: t1:1668687:1415415982:3e94da4b41306ba74bbfc6c50a8f77331593f2e7
fix build issue

Summary: hack code fix

Reviewed By: @bhosmer

Differential Revision: D1671942

Signature: t1:1671942:1415673107:e96b5f045b0ae77ba7d7ff00865b3000df796dad
hh_format: understand async lambdas

Summary: With async lambdas, 'function' is not the only thing that can come after
 'async'. For formatting purposes, we parse a standard expression
 after async + space ... it just so happens that we'd expect a lambda
 to be there.

Reviewed By: @pikatchu

Differential Revision: D1671582

Signature: t1:1671582:1415668945:9d488abb437fe56184f56e8be16001a7f2066011