Add option to double-escape output in tocheckstyle messages
Add option to double-escape output in tocheckstyle messages

Closes #3331.

The Jenkins Checkstyle Result plugin interprets the `message` attribute of `<error>` elements as HTML, which before this commit resulted in missing information when `<` and `>` characters appear in messages.

For example, `tocheckstyle` will convert this line:

```
file.php:58 PhanTypeMismatchArgumentInternal Argument 2 ($parameters) is array<string,mixed> but \call_user_func_array() takes array<int,mixed>
```

into this xml (other lines of xml omitted):

```xml
<error line="58" source="PhanTypeMismatchArgumentInternal" message="Argument 2 ($parameters) is array&lt;string,mixed&gt; but \call_user_func_array() takes array&lt;int,mixed&gt;" severity="error"/>
```

which will appear in the Jenkins interface as:

```
Argument 2 ($parameters) is array but \call_user_func_array() takes array
```

because it gets converted to the following HTML:

```html
<p><b>Argument 2 ($parameters) is array<string,mixed> but \call_user_func_array() takes array<int,mixed></b></p>
```

This commit adds an optional parameter `--output-format` to `tocheckstyle`, with one recognized value, `checkstyle-escapedhtml`. With that value set, HTML characters in the error message are escaped before being added as a `DOMAttr`, thus resulting in the following XML:

```xml
<error line="58" source="PhanTypeMismatchArgumentInternal" message="Argument 2 ($parameters) is array&amp;lt;string,mixed&amp;gt; but \call_user_func_array() takes array&amp;lt;int,mixed&amp;gt;" severity="error"/>
```

and appropriate HTML in Jenkins:

```html
<p><b>Argument 2 ($parameters) is array&lt;string,mixed&gt; but \call_user_func_array() takes array&lt;int,mixed&gt;</b></p>
```

etsy/phan,etsy/phan