Complete destructor for HhvmDeclProvider
Summary:
- move `DeclResult` into `internal` module, so all fields are not accessible by parent module. All constructing/desctructing must go through `new` and `into_parts`, this guarantees the raw pointer is leaked from a `Box`.
- added `hackc_free_decl_result`, which re-box a leaked value, then it will be correctly dropped at the end of the function scope.
Reviewed By: shayne-fletcher
Differential Revision:
D29475320
fbshipit-source-id:
78669a23a20c93ae096195d3db2cc756deff7dcd