Convert project stack to records
Dont run any tasks recursively from another task

The only time a task may run recursively is after a new project has been pushed to the stack.
Merge pull request #1198 from ericmj/patch-1194

Dont run deps tasks recursively when they are started non-recursively
Optimize downcase, upcase and rstrip in Unicode
No need for accumulator on downcase/upcase
Add a few sanity check tests for upcase & downcase
removed use of local variables in shell scripts in order to remove dependency on bash
Merge pull request #1218 from zambal/remove-bash-dependencies

remove dependency on bash in shell scripts
Improve error message for diverged deps
Merge pull request #1217 from ericmj/mix-outofdatedepserror

Improve error message for diverged deps
Add a --force option to `mix local.install`.

Useful for makefiles.
Added more informative error to Makefile when ex_doc is not available.

Added more information to README about building docs.

fixes #1151
Merge pull request #1221 from alexrp/mix-local-install

Add a --force option to `mix local.install`.
Merge pull request #1222 from jjh42/doc-error

Added more informative error to Makefile when ex_doc is not available.
Rename test/doctest.exs file to test/doc_test.exs to follow file name convention
Fix Makefile dependencies
Add missing rm -rf ebin back to docs task