Handle rebar dependencies better

Download dependencies specified in rebar.config and go through
Converger to handle conflicts.
Handle `sub_dirs` in rebar.config when getting dependencies and
by the sub_dirs to the code load path.
Handle raw option in rebar deps
Clean up code, add tests, fix bugs found in tests
Use Mix.Rebar as module for project pushing
Change project/rebar to manager/source in Mix.Dep
Use rebar from project root directory
Merge pull request #1122 from ericmj/mix-rebar

Handle rebar dependencies better