Upgrade to latest Rust

I'm not entirely sure if this is correctly done. I had merge conflicts here, needs a closer look 

(@glennw, could you help here? Thanks)