pep8 ..
pep8
raise curses.error, rollup er's docfixes

"must call setupterm() first" is an exception that should be raised -- we should avoid doing calls for terminals where does_styling is False.
use the multiprocessing interface

much cleaner looking. We must assert exitcode is non-zero, as the child processes' exception does not bubble up into the parent.
fix setupterm() must first be called errors.

we were attempting to manually use tparm() etc. capabilities where force_styling was unset; when running nosetests and piping to a non-tty, does_styling was False, setupterm() was never called, and these such tests would throw a curses.error
use os.fork() instead of multiprocessing

works well; now to discover why NullCallableString() isn't returning correctly ...
NullCallableString() fix: turtles all the way down

Lets explain:

@property
def color():
	returns NullCallableString()

which, on its own, would be fine:
   t.color == u'', is callable

but, when parameterized:
   t.color(8) == u'', NOT callable

would seemingly be complete; but isn't, we must allow:
   t.color(8)('hey') == u'hey'

Which, without returning NullCallableString() from within __call__ of NullCallableString, this wouldn't be possible.
improve test case coverage for missing ttys

1. Test NullCallableString more concretely.
2. prove that misspelled() terminal attributes are not detected
3. add assertions to ensure that exceptions for misspellings *are* thrown
removing more empty lines
test improvement: misspellings for non-ttys

Here we see the "assert False" actually doing its job. Modify this to assert that term.is_a_tty is False, then, which makes it ok -- again: misspellings for non-ttys are not detected.
pep8
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.