This commit enables `wasmtime_runtime::Table` to internally hold elements of either `funcref` (all that is currently supported) or `externref` (newly introduced in this commit). This commit updates `Table`'s API, but does NOT generally propagate those changes outwards all the way through the Wasmtime embedding API. It only does enough to get everything compiling and the current test suite passing. It is expected that as we implement more of the reference types spec, we will bubble these changes out and expose them to the embedding API.
This is the wasmtime-environ crate, which contains the implementations
of the ModuleEnvironment and FuncEnvironment traits from
cranelift-wasm. They effectively
implement an ABI for basic wasm compilation that defines how linear memories
are allocated, how indirect calls work, and other details. They can be used
for JITing, native object files, or other purposes.