Default string coercion strategy for domain objects

Produces a string containing the table name and a stringified version of the object identity.

E.g. per the test case, an `Animal` with `id=1` is stringified to `animal[id=1]`.

Thoughts @lox?