Add support details
Use c_style enums instead of raw statics

Type safety ftw!
Update usages of `std::rt::start_on_main_thread` to remove `crate_map` parameter
Use `*mut` instead of `*` for non-const parameters in ffi fns