represent calls to `unsafe_cast` as TAST `Hole`s
Summary:
Currently, calls to `unsafe_cast` are represented with the `Call` constructor. This diff changes this to use the `Hole` constructor so that we have a single way of representing casts on the TAST.
A `Hole` constructor resulting from a call to `unsafe_cast` is disambiguated from one generated during typing by the value of `hole_source`.
When adding a `Hole` for `unsafe_cast` the expression takes the type of the second type argument to the function i.e. the destination type of the cast.
Reviewed By: Wilfred
Differential Revision:
D27463985
fbshipit-source-id:
96cbbe29b82645999044bd75c2d2a2e6036e28fb