Refactor the duplicate code in type_isa and type_does.

Aside from how the type constraint was created, they were exactly the same.

Not having duplicate code will be helpful when making type_isnt and
type_doesnt shortly.
Extract the logic to create a type constraint from a type.

This will be used by type_isnt and type_doesnt
Change the internal function to take a type constraint.

I think this pattern is going to make doing type_doesnt and type_isnt
easier to implement.
Add type_isnt and type_doesnt.

For rt.cpan.org 82352
Merge pull request #2 from schwern/feature/negative_tests

Feature/negative tests