Make to_native throw a catchable exception

Makes it so we don't effectively abort() on type mismatch