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>