Enable custom attributes in Keys

I needed custom attributes to support this real-life use-case (notice the custom attributes on the root key and on the Request key).  Test passed using 2.7.5
https://gist.github.com/cerivera/f197bfb2212de568429b

Accomplished this by converting **key** into a **keys** tuple.

    <keys[0]>...</keys[1]>

__keys[0]__ will have the original key value, and __keys[1]__ will have the attributes stripped away inside of __make_valid_xml_name__.

I'd appreciate your feedback.  Thanks!