Allow XML tostring() function to customize the default prefacing with <?xml...>

This allows the user to specify a customized string for the XML prefacing. The function remains backwards compatible to existing users.

When specifying a string (instead of a boolean), the function will use that string instead of the default string. This allows to specify the encoding (e.g. UTF-8 and also beginning the string with BOM) and standalone etc. in the header.