Add Virtus::Types.finalize to finalize all the types
Rename constant to be more clear
Add respond_to? test for constraints

* This allows the constraint to work with other types and not raise
  a NoMethodError, but rather return false like it is supposed to.
Change Object#include? to a constraint setup in the finalizer
Change Type.constraint to not accept a nil value
Add TODO note for future possible performance improvement
Update error message to be more clear