Ordered type elements

Hello,

We are working on code which dynamically reads WSDL files using wasabi, and makes savon requests based on the content of the file. We identified the following changes to be required for us to do this:

- Adding `:order!` attribute to the types hash, which specifies the order of the type elements as defined by the WSDL source file. This makes wasabi compatible with Ruby 1.8, and also consistent with Savon, which allows passing an `:order!` attribute for Ruby 1.8 users to specify the order (as described in http://savonrb.com/#executing-soap-requests)

- Changed merging of type attributes logic so that subclass attributes are not overwritten by base class attributes

- Added additional information about the type attributes: `:nillable, :minOccurs, :maxOccurs`). This is in addition to the already-present `:type` attribute.

We have tested our changes against the wasabi specs, as well as the specs of savon and savon-multipart, and they all pass (on a local test machine).