Kill whitespace
Rename constrainer classes and get rid of unecessary iterables
Change handling of None as a Parameter special case
Make parameter constraints public

Will need that for the cmdline interface)
Make the rendered paramter descriptions look nicer/simpler

for simple cases
Remove obsolete special case handling
Support numpy arrays

Same thing should be done for others too. Seems to call for an
intermediate base class (dtype checker). But I am still debating with
myself...
Fix up tests
Dedicated place for constraints.
RF: Single place for dtype constraints
ENH: Fancified EnsureBool
BF: Actually convert array dtype if necessary
ENH: Comprehensive error message for invalid parameter values

Looks like this now:

ValueError: parameter 'C' cannot accept value '123.4' [value must be convertible to type 'float', and value must be in range [0.0, 10.0]]
RF+ENH: Get rid of exception type and improve error message

ValueError: parameter 'C' cannot accept value `123.4` (value must be at most 10.0) [value must be convertible to type 'float', and value must be in range [0.0, 10.0]]
ENH: Let constraints have a long and short description

The former is used in the numpydoc-style synopsis and replaces
the former 'allowedtype'
ENH: New constraints, improved short descript. rendering
BF: Don't die when short description is None
BF: Make error handling more robust
ENH: Implement Yarik's suggestions.
DOC+BF: Fix docs so tests pass