folly/dynamic fix use of incomplete type in template definition
Summary:
the old code is ill-formed per spec (section 14.6.8):
> If a type used in a non-dependent name is incomplete at the point at which a
> template is defined but is complete at the point at which an instantiation is
> done, and if the completeness of that type affects whether or not the program
> is well-formed or affects the semantics of the program, the program is
> ill-formed; no diagnostic is required.
GCC is lax and allows this, clang gives an error.
Test Plan: compiles.
Reviewed By: delong.j@fb.com
FB internal diff:
D643431