Tackle a hanging TODO, and do some cleanup

Created a parent class for Shipper and ShipTo called Client which wraps
some of the common behavior for those two entites.  Also standardized
the initialization of children of the Client class, having it take a
single hash rather than arguments followed by an options hash.  Added
simple presence validation to ensure that certain required values were
always passed in on init.  Renamed Ups::ShipTo, (which kind of sounds
like an address), to Ups::Consignee, which is both the correct name
_and_ the name used by UPS internally for the receiver of a package.

Updated the specs for Ups::Shipper, modernized them, slimmed them down,
and generally contributed to their hotness...

TODO: Next step is to apply a similar treatment to the Ups::Consignee
spec. Also need to clean up the Address class so that we can finish
writing specs for the Shipper and Consignee
Add negative case to shipper specs

Essentially reconstituting the intention of the original specs that
asserted the absence of nodes in the XML when options for those nodes
aren't passed
Prepare to test Consignee

But it turns out we're going to have to fix up address first since
that's a required field for Consignee
Clean up Address class

Make the Address class behave like Client and it's children, (required
parameters, validation, etc).  Do this by creating the RequestNode class
and inheriting it in Client and Address.

My thinking is that since all of these classes do essentially the same
thing, (output XML strings), it makes sense that they should come from a
common base, especially since you probably want to do similar things
with the XML, (validate node presence and so on).  It's still a pretty
rough cut, but its a good model for the moment.

Next steps will be to, (finally), clean up the specs on Consignee.
After that, I'll be hunting through Nichole's TODO's for more targets to
hit.
Clean up consignee specs and add address features

Consignee Specs are a mirror of Shipper specs, but obviously focusing on
the Consignee's individual attributes. Added a feature to the Address
class wherein it is possible to give it a differently named root node,
(for that case where you need an address to be represented as a
ShipFrom). It may be possible that we want to do this for every to_xml?
Restructure things

Pushed generator files in to their own folder for clarity
tee up some specs for completion
PackageDimensions spec...

This is going to be a bit ardous...
finish package spec
Finish the PackageWeight spec
Finish PackagingType spec
reference_number spec
DeliveryConfirmation spec
InsuredValue spec
Merge pull request #1 from stlewis/master

Cleanup and some structural changes