Add a wrapper for lxml to handle XML namespace

AWS S3 handles XML namespaces based on the following rules.

 - Any namespaces without a prefix work as the S3 namespace,
   http://s3.amazonaws.com/doc/2006-03-01/.

 - No namespace is same as having the S3 namespace.

Examples of valid XMLs:

  * No namespace
    <AccessControlPolicy>
      <Owner><ID>id</ID></Owner>
      <AccessControlList/>
    </AccessControlPolicy>

  * No prefix namespace
    <AccessControlPolicy xmlns="http://example.com/">
      <Owner><ID>id</ID></Owner>
      <AccessControlList/>
    </AccessControlPolicy>

  * S3 namespace
    <s3:AccessControlPolicy xmlns:s3="http://s3.amazonaws.com/doc/2006-03-01/">
      <s3:Owner><s3:ID>id</s3:ID></s3:Owner>
      <s3:AccessControlList/>
    </s3:AccessControlPolicy>

  * Mixed namespace
    <AccessControlPolicy xmlns="http://example.com/"
       xmlns:s3="http://s3.amazonaws.com/doc/2006-03-01/">
      <Owner><s3:ID>id</s3:ID></Owner>
      <s3:AccessControlList/>
    </AccessControlPolicy>

If the added namespace is not S3 but has a prefix, the xml is not valid.  For
example, the following one is invalid for S3.

<s3:AccessControlPolicy xmlns:s3="http://example.com/">
  <s3:Owner><s3:ID>id</s3:ID></s3:Owner>
  <s3:AccessControlList/>
</s3:AccessControlPolicy>

This patch adds support for the above namespace handling with a wrapper module
for lxml.

Change-Id: I4c15ce5bf3c7b4dd32bea4bba3e51bd12cce6478