Refactor CommentingXMLStreamWriter to capture attributes/values to and to allow more flexible comments based on the attributes/values without needing to throw everything into a map