Add support for composite partition keys

Allows partition keys to be specified explicitly via a `partition_keys` options to `#create_table`, ie:

```ruby
create_table :posts, :partition_keys => [:id, :created_month], 
                     :primary_keys => [:id, :created_month, :created_at] do |p|
...
```

A partition key is by definition a primary key so partition keys don't have to be included in the primary keys list but they are allowed to be.