Escaping functions now accept any object.

The compiled escaping functions now cast objects with `String()` before
replacements occur.
Corrected joining of interpolated strings.

`InterpolatedString.to*()` methods should return a string and not an array.
Fell back to correct, albeit slow, implementation.

Nested `if`s do not work properly without rearranging attributes. This
implementation uses a stack in the compiled code, which is noticeably
less performant than 0.7.0’s implementation when the latter is correct.