add support for different xml representations

- I encountered some XMP data where most of the attributes were XML elements
  instead of attributes on the root element.
- Dropped Ruby 1.8 support for BasicObject (which was required to make
  'xmp.dc.format' work).