[WIP] Primary key support for int and string columns

Also support for upsert for objects which have primary keys.

Missing:
- proper core support for indexing (both strings and ints)
- migration support and verification
Upserting logic should be extracted as it's repeated in three places.