Remove class-name requirement from queries

The data source's `query` method is not intended to take a class name.
Implement Postgres#retrieve
Implement Postgres#find in terms of retrieve
Explain reason for magic number
Move `first` call to `find`
Allow queries to be coerced to strings
Unserialize embedded objects
Remove unnecessary test dependency
Deserialize references
Use TableName objects instead of manual conversion