create @forkit decorator for testing within a child process

this causes a problem with python 2.7, a rare import lock race condition, as a result of the tests.py itself being a "module" that is, i suppose, executed-on-import, something strange here that only occurs under nose.

anyway, its what we want. it has already exposed a few failing test cases that otherwise used to pass, only because they carried on old setupterm()-initialized cases, where, when calling with a StringIO() (no tty), setupterm() is never called. so currently all test cases do not pass.

..just committing to get git pull --rebase the number_of_colors fix from master, if it was pulled by er, anyway.