Add dynamic to TypeStructure
Summary:
For the purposes of reified generics, we need `dynamic` to be distinct from `mixed`.
Previously, `dynamic` was an alias to `mixed` in the compiler. Now, it has a distinct type structure representation, but the typehints are still emitted as `mixed`. This way, we don't have to add a whole new type to HHVM. The same optimizations for `is` expressions carry over from `mixed`.
Reviewed By: oulgen
Differential Revision:
D15908205
fbshipit-source-id:
e8e70a53fbf541478e1b63878922c6ee58e9fd31