Initial work on traversable

This pull requests adds a Traversable protocol to Elixir.

A summary of the changes can be found in this gist: https://gist.github.com/josevalim/337baccd6c31528c47d1

Pending to merge this is:

* [x] Deprecate a couple functions in the Dict API, namely `Dict.empty/1`, `Dict.new/1` and `Dict.new/2`.
* [x] Implementation of `Traversable` for functions
* [x] Implementation of `Stream.into/2` and `Stream.into/3` for side-effects
* [x] Implementation of traversable for File and IO streams
* [ ] Support for traversables in comprehensions with the `:into` option
* [x] Rename Traversable to ???

/cc @devinus @ericmj @meh