implement compound primary key

- automatically determine if multiple attributes have `primaryKey: true`, and form compound pk from those