Update for newest Rust
Changed from deprecated inner attribute syntax

i.e. #[foo]; -> #![foo]
Changed import of extern crate extra to extern crate serialize
changed all occurences of std::vec to std::slice
Return type of read_line changed in rust 0.10
BufferedReader is now in std::io
TotalEq trait no longer defines an equal-function
Fixed compiler warnings
Conditional compilation of helper functions for testing