wrapped_mono 0.2.0

`wrapped_mono` is a safe, lightweight wrapper around the mono library. It allows embedding of the mono runtime inside a rust project. Inside this embedded runtime code written in languages supporting the .NET framework, such as C# and F#, can be run. This allows usage of libraries written in those languages, and using them as a scripting language. The mono runtime is used by many game engines, and this wrapper allows using it with projects written in Rust too.
Documentation
use rusty_fork::rusty_fork_test;
use crate as wrapped_mono;
use wrapped_mono::*;
rusty_fork_test!{
    #[test]
    fn getting_delegate_from_method(){
        let dom = jit::init("root",None);
        let asm = dom.assembly_open("test/dlls/Test.dll").unwrap();
        let img = asm.get_image();
        let class = Class::from_name(&img,"","TestFunctions").expect("Could not get class");
        let met:Method<()> = Method::get_from_name(&class,"GetDelegate",0).unwrap();
        let obj = met.invoke(None,()).expect("Got an Exception").expect("Got null on a non-nullable!");
        assert!(obj.get_class().is_delegate());
    }
    #[test]
    fn calling_delegate_from_method(){
        let dom = jit::init("root",None);
        let asm = dom.assembly_open("test/dlls/Test.dll").unwrap();
        let img = asm.get_image();
        let class = Class::from_name(&img,"","TestFunctions").expect("Could not get class");
        let met:Method<()> = Method::get_from_name(&class,"GetDelegate",0).unwrap();
        let obj = met.invoke(None,()).expect("Got an Exception").expect("Got null on a non-nullable!");
        let del:Delegate<(i32,i32)> = Delegate::cast_from_object(&obj).expect("Expected delegate, got something else");
        let _res = del.invoke((10,10)).expect("Exception").expect("Got null");
    }
}