Unittest - Bring back diag() for generating TAP output

* Still needs work to make sure output is displayed after the test
status (not ok ...) and not before.
Unittest - Don't escape new-line characters in TAP output
Unittest - Don't display "task diag" by default on error
Unittest - Add which() backported from py3.3
Unittest - Add code to check if taskd is available
Unittest - Add example of skipping taskd test on template.t
Unittest - exit code may be None if process failed to finish
Unittest - CommandError exception treats SIGABRT specially

* SIGABRT will be used to signal processes that failed to finish after
the process assigned time (default 1 second).
Unittest - Stream blocking tests can now be safely performed

* Processes that blocked waiting for stdin data will now be aborted
after a 1 second timeout.
* As a side-effect any process that takes longer than 1 second to
finish will also be aborted.
Unittest - Example of TAP diag use in template.t

* Also prettify its output with the amazing whitespace
Unittest - Don't use unittest.TestCase use basetest.TestCase instead
Merge pull request #7 in TM/task from ~UNODE/task:2.4.0 to 2.4.0

* commit '9bd7b336f94805982e81192b6a94f840391f1606':
  Unittest - Don't use unittest.TestCase use basetest.TestCase instead
  Unittest - Example of TAP diag use in template.t
  Unittest - Stream blocking tests can now be safely performed
  Unittest - CommandError exception treats SIGABRT specially
  Unittest - exit code may be None if process failed to finish
  Unittest - Add example of skipping taskd test on template.t
  Unittest - Add code to check if taskd is available
  Unittest - Add which() backported from py3.3
  Unittest - Don't display "task diag" by default on error
  Unittest - Don't escape new-line characters in TAP output
  Unittest - Bring back diag() for generating TAP output