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
Use the shell to run Mix.Shell.cmd commands
Merge pull request #1152 from ericmj/mix-sh

Use the shell to run Mix.Shell.cmd commands
Implement Regex.escape
Merge pull request #1153 from meh/regex-escape

Implement Regex.escape
Merge pull request #1122 from ericmj/mix-rebar

Handle rebar dependencies better
Better error message for Binary.Chars.List.to_binary. Closes #1144
Merge pull request #1150 from alco/to_binary-error

Better error message for Binary.Chars.List.to_binary. Closes #1144