added Model.primary(name) to set the key

I've been wanting to have a nicer way to set the `primary` key for a model. Instead of having to break the nice chainable API to do:

```js
var Model = model('post')
  .attr('id')
  .attr('slug')
  .attr('title')
  .attr('body');

Model.primaryKey = 'slug';
```

Instead, we can add a chainable method to set the `primaryKey`. Note that I removed the `model[attr].primaryKey = true` piece of code because it seemed unnecessary and wasn't being used anywhere, so I figured it was a bit of feature creep for now.

Now setting a `primaryKey` would look like:

```js
var Model = model('post')
  .attr('id')
  .attr('slug')
  .attr('title')
  .attr('body')
  .primary('slug');
```

But then I realized that there might even be a better way using the extra `options` we can tie to a specific property, which would look like this:

```js
var Model = model('post')
  .attr('id')
  .attr('slug', { primary: true })
  .attr('title')
  .attr('body');
```

That last option seems the cleanest to me, and it builds on the existing API. (Note: that's **not** what's in the PR, so let me know if you like that one better and I'll submit another with it.)