Rustup

This will likely fail travis as it's still pending on a fix in rust-sdl2 but you can use a local override in the meantime.

There's a lot of additional cloning on some of the string additions due to a bug in the stdlib at the moment, e.g. `"foo" + "bar".to_string()` = `"barfoo"`.
Updated in last commit, tried something fancy and reverted to copy-paste and forgot to clean it up!