If using `keppArrayName`, self closing tags cause XML serialization to fail

If self closing tags are encountered when `keepArrayName` is set to `true` XML serialization fails. For example:

````
        String xml = "<root><a><b /></a></root>";
        xmlSerializer.setKeepArrayName(true);
        JSON actual = xmlSerializer.read( xml );
````
Will cause:
````
net.sf.json.JSONException: java.lang.IllegalArgumentException: key is null.
	at net.sf.json.xml.XMLSerializer.read(XMLSerializer.java:380)
	at net.sf.json.xml.TestXMLSerializer_reads.testSelfClosingTagsWithKeepArrayNames(TestXMLSerializer_reads.java:51)
       ...10 more
Caused by: java.lang.IllegalArgumentException: key is null.
	at net.sf.json.JSONObject.put(JSONObject.java:2297)
	at net.sf.json.xml.XMLSerializer.processArrayElement(XMLSerializer.java:996)
	at net.sf.json.xml.XMLSerializer.setValue(XMLSerializer.java:1407)
	at net.sf.json.xml.XMLSerializer.processObjectElement(XMLSerializer.java:1236)
	at net.sf.json.xml.XMLSerializer.setValue(XMLSerializer.java:1409)
	at net.sf.json.xml.XMLSerializer.processObjectElement(XMLSerializer.java:1236)
	at net.sf.json.xml.XMLSerializer.read(XMLSerializer.java:371)
	... 22 more
````

-----
## To give more context
By default the XMLSerializer will turn this:

````
<root>
  <child>
    <a>1</a>
    <a>2</a>
    <a>3</a>
  </child>
</root>
````

Into this:

````
{
  "child": ["1", "2", "3"]
}
````
(running version 2.4.1)

When using `xmlSerializer.setKeepArrayName(true)` the result looks like:

````
{
  "child": {
     "a": ["1", "2", "3"]
  }
}
````