Added support for OAuth v1.

The shim layer should now be able to handle OAuth versions 1 and 2. This has lead to the addition of a couple of functions in the Shim interface.

Note: Due to a sort of "chicken and egg" problem, it is very difficult to test this. A shim implementation is needed to test the functionality. Therefore, the majority of the ground work should be in place, but it should be expected that bugs will arise.