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
We're happy to go with whatever you think is better, but if we raise an error it won't be consistent with the other overridden methods from this class, "requirements" and "find_rates". So we'd probably want to make those raise errors too right? Which could actually be a breaking change for some people. So maybe its best to leave it?