Whole rework of the casts system. The "Cast" term is now accessible by the "Constraint" term which is a better name to apply many feature to our attributes.
New class: Constraint, divided into two other child classes : Casters and Instances. Casters are the name for type casting, Instances allow only one kind of object, nullable or not.
New interfaces and traits, which allows more complexity.
Fix many registered bugs.