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