Remove URL.__str__ causing a fallback to URL.__repr__
Currently, careless uses of `str(engine.URL())` in logs and prints
can lead to leaking a clear text password to the open. Security wise
a better secrets handling approach would be to "Hide unless explicitly
told *not* to".
Remove `URL.__str__` which exposes the database password in clear.
`str(URL())` will then fall back to `URL.__repr__` which does censor
the password in its return value.
For cases when clear text password is indeed desired in the `URL()`
string representation, `URL.render_as_string(hide_password=False)` is
still available.