changes to task support promises and some changes to run tests on windows

  The code changes in this pull request aren't ready, but I thought I'd create this in case you want to give feedback earlier.

  I wanted to be able to use promises with Jake directly, so I tried adding support for that (see task.js and task_base.js tests related to promises).  In the past I've done this with a helper method, but I thought it'd be nice built into Jake.  I believe this implementation will work with any promise implementation that follows the original promises spec, as an implementation detail the test uses the Q framework.

  There are a bunch of other changes that I needed for other tests to run on my machine (Windows).  Some tests I just uncommented because well that was taking a long time.  I'm curious if the tests in this branch pass on your machine (particularly the 'exec(..' -> 'exec(node ..' changes).

  Maybe after a break I'll be able to get the commented out tests to pass.  I put some notes in on some with what assertions I saw if you want to take a look.