Allow None for most traits

With this patch most of the traits have an `_allow_none` property that works in the same way as the one for the instance. 
It is often useful that traits have no implicit default value (like zero for number types) and that there is a way to represent "No value defined by the user".
By default everything should work exactly as before.
The validation has to take allow_none into account in every trait implementation.
Casting traits cast None to None when `_allow_none` is set. 
Tests included.