beginnings of implementing coercions; I'm going to go down the route of the coercion being a separate class to the type constraint a la Moose::Meta::Type{Constraint,Coercion} as this may make inflation easier