Replaced @List with ~List in Rust's recursive example
Renamed variables
Implement Eq for Cell<T>
Modified list::from_vec() to return List<T>
Implemented Items<'a, T> for List<T>
Replaced list::each with iter() in Arenas's Drop impl
Replaced list::each with iter() in get_region
Removed list::foldl() in favor of iter().fold()
Removed list::find() in favor of iter().find()
Removed list::any() in favor of iter().any()
Implemented list::len() based on Container trait
Implemented list::is_empty() based on Container trait
Removed deprecated list::{iter,each}() functions
Replaced list::has() with list::contains()
Refactored list::head() to be based on List<T>
Refactored list::tail() to be based on List<T>
Refactored list::append() to be based on List<T>
Replaced list::push() with unshift() based on List<T>
auto merge of #12348 : brunoabinader/rust/libcollections-list-refactory, r=alexcrichton

This PR includes:
- Create an iterator for ```List<T>``` called ```Items<T>```;
- Move all list operations inside ```List<T>``` impl;
- Removed functions that are already provided by ```Iterator``` trait;
- Refactor on ```len()``` and ```is_empty``` using ```Container``` trait;
- Bunch of minor fixes;

A replacement for using @ is intended, but still in discussion.

Closes #12344.