Move __toString() to toString()

Errors thrown inside __toString() produce a basically unusable stack
trace. Switching it over to using `toString` instead (and just calling
that from `__toString` for backwards-compatability) gives you a much
nicer stack trace.