Heap values encapsulate GC concerns of an on-heap reference to a JS
object. This means that every reference to a JS object on heap must
be realized through this structure.
A vtable for use in RootedTraceable, which must be present for stack roots using
RootKind::Traceable. The C++ tracing implementation uses a virtual trace function
which is only present for C++ Rooted values that use the Traceable root kind.
Trait for things that can be converted to handles
For any type T: IntoHandle we have an implementation of From<T>
for MutableHandle<T::Target>. This is a way round the orphan
rule.