Add source file as a dependency, so that 'make' tracks changes properly
Use new crate attribute syntax
~[T] isn't growable anymore, use Vec instead
Fix 'use' syntax
~"str" literals are gone, use .to_owned() where appropriate
Remove unused 'use'
Solve warnings: unreachable code, 'while true' for infinite loop, private type returned
Remove unused function
On the tests, link against 'lib' instead of bundling it using 'mod'

This solves the following warning:
  src/csv/lib.rs:1:1: 2:2 warning: crate-level attribute should be in the root module, #[warn(attribute_usage)] on by default
  src/csv/lib.rs:1 #![crate_type = "lib"]
  src/csv/lib.rs:2 #![desc = "CSV parser"]
Avoid unnecessary heap allocation

It doesn't make much sense to force heap allocation on users here. If users of the library still want a
~-pointer though, they can easily get it:

    let mut parser = ~csv::init(foo);