Debug: Fixes ambiguous overload issues in ostream fallback.

Debug fallback printing is now accomplished through an operator<< that
requires an implicit conversion for both the left and right hand sides.
This ensures that the fallback operator<< is only selected when all else
fails.

In particular, any rhs value that is implicitly convertible to a type
that has operator<<(Debug) will match that operator, rather than the
fallback.