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:

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}
Consolidate methods on primary_key
Extract ScopeKeys module from PrimaryKey
Refactor scope keys module
Use mattr_accessor to save state of scope key

Instance variables in modules get messy with inheritance. This ensures
that @_scope_keys is the same at the parent module and child module
level.
Class attribute to track _scope_keys
Remove redudant active support require
Add user_guid to tag attributees
Documentation for primary/scoped key modules
Implment scope_key_hash

When RPC calls are made in these cases, the scope_key_hash is used to
construct the required identifiers for that remote object. It'll read
the default primary key if no scope key is identified.
Change guid to string
Add scope_key_hash specs where implemented
Merge pull request #20 from nelsonwittwer/nw/configurable_keys

Add PrimaryKey module