Fix can() so that it will nto die when called on a package

The Catalyst test body_fh.t was exploding because it gets this 'can'
method on it's object. The latest Test::Builder alpha also calls
->can(...) on test packages, in this case causing an error since the
package is not a hashref, but instead is just a string.

This will do the expected behavior for plack, but not explode if someone
calls 'can' on the package.
Add unit test for can() fix
Merge pull request #462 from exodist/master

Fix can() so that it will nto die when called on a package