Allow types that do not except instances as input.

Datetime, which is going to be commonly used in tables, is an
example of such a type.  So that restriction needs to be removed.
This removes it from row, I'm not sure where else it might
need to be removed from.

Also add a test that ~ can't be used on an empty relation, since
that question came up and I didn't see the answer in my docs :).
Add test that insert/update/delete changes persist.

I'm having a case where they aren't in a project actually using
dinsd, but these tests pass.
Fix update to work if there is no key.

I'm haven't written a test for this.  I'll do so when I replace
this hack code with something less hackish.  (The problem turned
up in the project using dinsd.)