Derive macro for set_field

see set_field

Example

```rust use set_field::SetField;

[derive(SetField)]

struct Foo { a: i32, b: Option, c: i32, } fn test() { let mut t = Foo { a: 777, b: None, c: 0 }; // return true on success: asserteq!(t.setfield("a", 888), true); // return true on success: asserteq!(t.setfield("b", Some(true)), true); asserteq!(t.a, 888); asserteq!(t.b, Some(true)); // return false on nonexistent field: asserteq!(t.setfield("d", 0), false); // return false on wrong type: asserteq!(t.setfield("b", 0), false); // won't compile: // asserteq!(t.setfield("a", 0.0), false); } ```