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
It's not just in case. In the tests we change the primary key dynamically, so this state needs to be kept up to date on the properies