supporting the describe and metadata calls on SObjectType

The major changes to the behavior are:
1) Replacing fetch method with describe and getMetadata.
2) Methods now don't take success and error options but instead return a promise which will return the appropriate data when resolved.

Let me know what you think.