Basic support for obtaining UPS shipping labels (Rebased)

"I've added very basic support for obtaining UPS shipping labels. This also provides support for Saturday delivery, negotiated rates, and different pickup/return addresses. Let me know what you think, I'd love to get these changes merged." - @jmorton
I like to make stubbed methods raise errors. It's more in your face when calling an unimplemented method.

By default this would just return nil which is less descriptive as to why it failed.