Added compound primary key support, docs and tests

This PR adds support for compound primary keys. It also includes tests and docs updates.

Closes #14