Two fixes for changes in rust and in serialize crate.

Have a fix for breaking change introduce in rust commit rust-lang/rust@ddb2466 which
now parses `macro!()` and `macro![]` as expressions if not followed by a
semi-colon.

Also fixed a change in the Serialize crate resulting in FnMut being used
instead of FnOnce (following rust-lang/rust@c9ea7c9).