Define 'wait' task as a task for waiting a specified number of seconds

The 'wait' task appears to have been previously unused. Now, it can be used as a way to wait a specified number of seconds (e.g., grunt wait:3 will wait 3 seconds). This can be used for tests.
Refactor shared logic in tests

Extract the part that tests error/stderr as this is going to be a common pattern for ensuing tests
Fix for capturing stderr (fixes #15)

Added tests to make sure stdout, stderr, and exit code all got captured properly for both synchronous and asynchronous commands
Fix unit tests so they run on both Windows and Unix
Fix :kill task on Unix
Further remove code duplication in tests
Add a comment about writing test cases so that the error message is visible
Set detached option to true only on Unix (causes issues on Windows)
Fix :kill task on Windows
Update documentation for :kill task
Merge remote-tracking branch 'sergkr/issue14'