Updated: preconditioner

Failure to create preconditioner now raises exception insteady of
warning.  Since preconditioning is really required, this saves the
routine from performing iterations that are likely not to converge.
Also allows for catching with try-except statement.
Added WignerNorm class

Creates normalization that makes any colormap a nonlinear colormap
center around zero.  Can be used in plots by calling norm=WignerNorm()
in a plot.
Added new logging and settings support, started refactoring debugs.

This change enables the use of Python standard logging, and backs
it by a new qutip.settings entry. A few instances of classic
'if debug: print' style logging have been refactored.
The new qutip.settings entry is based on configobj, with a fallback
to classic qutiprc parsing if that library is not available.
Errors in the new functionality introduced by this commit are also
logged, and can be accessed by setting up logging.basicConfig
*before* importing QuTiP.
Changes to setup to allow for configspec.ini, move of _logging.
Changed to point to new name of logging module.
Added __all__ to logging.
Stripped out old parsing logic, improved IPython detection.
Revert "qutip.logging used in place of print"

This reverts commit 67169c6b2f60e07a783a70993613f6a8bdd471d8.
Merge remote-tracking branch 'cgranade/feature-logging'
Update to new logging system
logger changes redone after prev revert