Updates to xmlutil encoding/decoding

Expanded godoc/comment coverage in core xmlutil.go and the decoder.

Updated the decoder to better handle slices and have it evaluate the XML element
first, then the Go type second. This improved some handling where handling
slices would result in an EOF because it would typically read ahead an node.

Began adding some tests around type handling on the decoder.

Started adding some support specific to xsi:type handling.

Replace fInterface with fTransparent, so a field tag can specify a field is
transparent and the type name will become the element name. This was mostly an
improvement around SOAP APIs that use abstraction a lot, and needing to look  at
the xsi:type while preserving the field name in the element.

Added the fInnerXml and xml:",innerxml" handling so a field can specify that it
should be marshaled and unmarshaled as the text within the XML element.

Other tweaks and changes.