Add PrimaryKey module

In the event that an object needs to be looked up with a specific key or
composite key, the primary_key method allows you to specify what key
should be used when executing a remote call. For example, in the
persistence module an update call would be made like this:

```ruby
class Account < ActiveRemote::Base
  primary_key [:guid, :user_guid]
end
```

Account.remote_call(:update, primary_key_hash)  will now use the primary
key you specified when building the primary_key_hash that will look like
this:

```
{  :guid => self.guid, :user_guid => self.user_guid }
```

TODO if you agree with the implementation of this module:

 - Whenever we make a remote_call, we ensure the primary_key_hash is used as demonstrated above.
 - Add usability comments