Return $this when saving XML Document in ::out()
Intelligently format output on saving

Do not change if formatOutput is true

Otherwise, change it, save it, and change it back.
More dynamic constructor

Allow content to be another XML_Node, in which case it will be appended

Same applies to value method
Allow __call() method to handle $content as nodes

They will be appeneded after the new node is created
Update handling of headers

* Keep headers as [key => value]
* When setting headers in cURL, map headers to correct format, adding
Content-Length
* Do this without modifying original headers or adding Content-Length
Use list() & array_pad() instead of switch for __call()

Was using switch because number of paramaters in $arguments was unknown.
Use list() & array_pad() to solve this problem and reduce repetition by
only having one set of arguments to work with.
Use set in _call() instead of append. Cast instead of test for string in set()

Using set() instead of append() in __call() allows for multi-dimensional
arrays to be used as $content.
[
	'parent' => [
		'child' => 'text'
	]
]
creates:
<parent>
	<child>text</child>
</parent>