Replace ~[T] to std::vec_ng::Vec<T>

See also mozilla/rust#12861
Use Iterator.enumerate() to reduce boundary checks
Merge pull request #1 from Kroisse/follow

Follow the latest changes
Merge pull request #2 from Kroisse/vec_ng

Replace old owned vectors to std::vec_ng::Vec<T>
Follow the latest changes up to 2014-03-23

related issues of mozilla/rust:
- mozilla/rust#12772  rename std::vec -> std::slice
- mozilla/rust#13028  rename std::vec_ng -> std::vec
- mozilla/rust@0305ed5  std: Add Vec to the prelude
- mozilla/rust#12935  Disallow trailing parentheses for nullary enum variants