Fix fail_with so it handles strings in any encoding.

Previously we would get an Encoding::CompatibilityError if
an encoding was used that's not ASCII compatible.

Fixes #201.

@alindeman -- care to review this?

I'm slightly concerned about a possible perf degredation here (as I imagine converting to codepoints on a large string and checking if it has `\n` could be slower than what was here previously) but I haven't thought of a better way to do this.