Don't run server nor phantom if `test` is in args

We might want to spawn the server and phantomjs only once on task
startup, while executing the tests multiple times later.

A usecase is with a watch task monitoring file changes where we don't
want the overhead of starting the server and binding phantomjs each time
the tests are run.

Another usecase is binding multiple browsers manually to the server,
which is impossible if the server is relaunched for each test run.
Allow starting just the server and phantomjs
Stop server and phantomjs on exit if using keepalive
Add space
Remove obsolete test
Test that correct tasks are run and others are not
Ensure that all tasks are run if specified
Add blocking functionality

Allow blocking after starting the server and/or phantomjs to allow the
user to capture browsers manually before running tests. When blocking is
used, none of the grunt tasks following the blocking task will be
performed.
Compact-ify argument checks a bit
Merge pull request #24 from busterjs/issue-9

Fix #9