minor refactor of isa/coerce wrapping with better names
use evals rather than a global __DIE__ override to handle accessor exceptions

Instead of overriding $SIG{__DIE__}, use an eval to add information
about the relevant accessors to errors during isa checks or coercions.
This prevents modifying messages of exceptions generated within the isa
check, which may not be related to the attribute itself.

Part of the implementation taken from work done by
Michael G. Schwern <schwern@pobox.com>.
test odd exception cases with accessors
Tests for eliminating global die handler
optimize better for isa case
changelog for using eval instead of __DIE__ to handle isa errors
Merge branch 'isa-eval'