change push_char() to push()

Rust String API changed
I guess the semantics of .get() changed?

Vec::get() seems to work differently now but I'm on the bus with no good
way to check the official documentation now. Anyway adding .unwrap()
makes those compile errors go away so yay I guess.
Fixing more rust API changes

I guess getopts changed too
Kill some newlines