Added CredentailsInterface to allow the use of other Credential Objects

Why?
Currently, it's not possible to write your own Credential's Class to pass into your service provider.

Xero (xero.com) provide a 2 legged private oAuth (v1a) implementation, where both the consumer and user credentials are the same, and all requests as signed with RSA-SHA1 using public/private certs on each end.