make logger.debug conditional,

even though the actual debug message doesn't get written, the string
still gets evaluated, which 1) is not time efficient and 2) can
introduce errors in some cases, because a Feature may be converted to a
string when evaluating the message before it's ready.
assume package is installed for tests
minor whitespace cleanup
unicode test differs in python vs ipython,

or even using nosetests --with-doctest or not.  this way, the test will
run in any of these environments