Wasmtime Engine Provider

This is a pluggable engine provider for the waPC RPC exchange protocol. This engine encapsulates the Bytecode Alliance wasmtime WebAssembly runtime.

To run the demo: cargo run --example demo -- ./.assets/hello.wasm test

An example of using this engine provider: ```rust pub fn main() -> Result<(), Box> { env_logger::init();

let module_bytes = load_file(&std::env::args().skip(1).next().unwrap());
let engine = WasmtimeEngineProvider::new(&module_bytes, None);
let host = WapcHost::new(Box::new(engine), host_callback)?;
let func = std::env::args().skip(2).next().unwrap();

let _res = host.call(&func, b"this is a test")?;
Ok(())

}

fn hostcallback( id: u64, bd: &str, ns: &str, op: &str, payload: &[u8], ) -> Result, Box> { println!( "Guest {} invoked '{}->{}:{}' with payload of {}", id, bd, ns, op, ::std::str::fromutf8(payload).unwrap() ); Ok(vec![]) } ```