WebComment: general comment format improvements

* Introduces the CFG_WEBCOMMENT_ENABLE_HTML_EMAILS config variable.
  When True, emails will also include HTML content.

* Introduces the body_format column for cmtRECORDCOMMENT that describes
  the format of the body of each comment ("HTML", "TEXT", etc.).

* Handles comments appropriately when storing and displaying them,
  according to their body format and desired output format. (closes #2064)

Co-Authored-By: Nikolaos Kasioumis <nikolaos.kasioumis@cern.ch>
Signed-off-by: Nikolaos Kasioumis <nikolaos.kasioumis@cern.ch>
25:6: E126 continuation line over-indented for hanging indent
71:45: E261 at least two spaces before inline comment
72:108: E261 at least two spaces before inline comment
72:109: E262 inline comment should start with '# '
73:37: E261 at least two spaces before inline comment
73:38: E262 inline comment should start with '# '
74:62: E261 at least two spaces before inline comment
75:36: E261 at least two spaces before inline comment
78:1: E302 expected 2 blank lines, found 1
78: D401 First line should be imperative: 'Return', not 'Returns'
78: D205 Blank line missing between one-line summary and description
98:49: E713 test for membership should be 'not in'
98:20: E201 whitespace after '('
98:23: E201 whitespace after '('
99:13: E128 continuation line under-indented for visual indent
99:30: E202 whitespace before ')'
101:1: E302 expected 2 blank lines, found 1
101: D205 Blank line missing between one-line summary and description
137:1: E302 expected 2 blank lines, found 0
137: D301 Use r""" if any backslashes in a docstring
137: D400 First line should end with '.', not 's'
137: D205 Blank line missing between one-line summary and description
137: D207 Docstring is under-indented
228:1: E302 expected 2 blank lines, found 1
228: D203 Expected 1 blank line *before* class docstring, found 0
228: D204 Expected 1 blank line *after* class docstring, found 0
228: D400 First line should end with '.', not 'r'
228: D205 Blank line missing between one-line summary and description
252: D290 White spaces around docstring should be trimmed.
252: D400 First line should end with '.', not 'r'
262:17: E127 continuation line over-indented for visual indent
264:17: E127 continuation line over-indented for visual indent
266:54: E502 the backslash is redundant between brackets
266:33: E201 whitespace after '('
267:33: E128 continuation line under-indented for visual indent
267:53: E502 the backslash is redundant between brackets
268:33: E128 continuation line under-indented for visual indent
268:54: E502 the backslash is redundant between brackets
269:33: E128 continuation line under-indented for visual indent
269:53: E502 the backslash is redundant between brackets
270:33: E128 continuation line under-indented for visual indent
270:54: E502 the backslash is redundant between brackets
271:33: E128 continuation line under-indented for visual indent
271:53: E502 the backslash is redundant between brackets
272:33: E128 continuation line under-indented for visual indent
272:54: E502 the backslash is redundant between brackets
273:33: E128 continuation line under-indented for visual indent
273:54: E502 the backslash is redundant between brackets
274:33: E128 continuation line under-indented for visual indent
274:54: E502 the backslash is redundant between brackets
275:33: E128 continuation line under-indented for visual indent
275:53: E502 the backslash is redundant between brackets
276:33: E128 continuation line under-indented for visual indent
278:54: E502 the backslash is redundant between brackets
278:33: E201 whitespace after '('
279:33: E128 continuation line under-indented for visual indent
279:53: E502 the backslash is redundant between brackets
280:33: E128 continuation line under-indented for visual indent
280:54: E502 the backslash is redundant between brackets
281:33: E128 continuation line under-indented for visual indent
281:53: E502 the backslash is redundant between brackets
282:33: E128 continuation line under-indented for visual indent
282:54: E502 the backslash is redundant between brackets
283:33: E128 continuation line under-indented for visual indent
283:54: E502 the backslash is redundant between brackets
284:33: E128 continuation line under-indented for visual indent
284:54: E502 the backslash is redundant between brackets
285:33: E128 continuation line under-indented for visual indent
285:54: E502 the backslash is redundant between brackets
286:33: E128 continuation line under-indented for visual indent
288: D205 Blank line missing between one-line summary and description
292:42: E502 the backslash is redundant between brackets
292:42: E251 unexpected spaces around keyword / parameter equals
293:21: E127 continuation line over-indented for visual indent
317: D400 First line should end with '.', not 's'
320:24: E221 multiple spaces before operator
324:38: E126 continuation line over-indented for hanging indent
331:38: E126 continuation line over-indented for hanging indent
337: D400 First line should end with '.', not 's'
353: D400 First line should end with '.', not 's'
356:24: E221 multiple spaces before operator
364: D400 First line should end with '.', not ')'
367:24: E221 multiple spaces before operator
371:38: E126 continuation line over-indented for hanging indent
378:38: E126 continuation line over-indented for hanging indent
381: D209 Put multi-line docstring closing quotes on separate line
381: D400 First line should end with '.', not ':'
381: D205 Blank line missing between one-line summary and description
392: D209 Put multi-line docstring closing quotes on separate line
392: D205 Blank line missing between one-line summary and description
397:1: E302 expected 2 blank lines, found 1
397: D202 No blank lines allowed *after* function docstring, found 1
397: D400 First line should end with '.', not 'g'
397: D205 Blank line missing between one-line summary and description
430:1: E302 expected 2 blank lines, found 1
430: D400 First line should end with '.', not 'o'
430: D205 Blank line missing between one-line summary and description
463:5: E122 continuation line missing indentation or outdented
464:5: E122 continuation line missing indentation or outdented
465:1: E122 continuation line missing indentation or outdented
467:1: E302 expected 2 blank lines, found 1
467: D401 First line should be imperative: 'Return', not 'Returns'
467: D400 First line should end with '.', not 'd'
467: D200 One-line docstring should not occupy 3 lines
475:1: E302 expected 2 blank lines, found 1
475: D401 First line should be imperative: 'Return', not 'Returns'
647:11: E127 continuation line over-indented for visual indent
662:22: E126 continuation line over-indented for hanging indent
672:1: E302 expected 2 blank lines, found 1
691:1: E302 expected 2 blank lines, found 1
691: D205 Blank line missing between one-line summary and description
706: D203 Expected 1 blank line *before* class docstring, found 0
706: D204 Expected 1 blank line *after* class docstring, found 0
706: D400 First line should end with '.', not 'r'
706: D205 Blank line missing between one-line summary and description
714:1: E302 expected 2 blank lines, found 1
714: D203 Expected 1 blank line *before* class docstring, found 0
714: D204 Expected 1 blank line *after* class docstring, found 0
714: D400 First line should end with '.', not 'e'
714: D205 Blank line missing between one-line summary and description
719: D102 Docstring missing
732: D102 Docstring missing
735: D102 Docstring missing
738:1: E302 expected 2 blank lines, found 1
738: D203 Expected 1 blank line *before* class docstring, found 0
738: D204 Expected 1 blank line *after* class docstring, found 0
738: D400 First line should end with '.', not 'e'
738: D205 Blank line missing between one-line summary and description
743: D102 Docstring missing
756: D102 Docstring missing
759: D102 Docstring missing
762:1: E302 expected 2 blank lines, found 1
762: D202 No blank lines allowed *after* function docstring, found 1
823:1: E302 expected 2 blank lines, found 1
823: D203 Expected 1 blank line *before* class docstring, found 0
848: D102 Docstring missing
851: D102 Docstring missing
877:1: E302 expected 2 blank lines, found 1
969:1: E302 expected 2 blank lines, found 1
969: D203 Expected 1 blank line *before* class docstring, found 0
969: D204 Expected 1 blank line *after* class docstring, found 0
969: D400 First line should end with '.', not 'l'
969: D205 Blank line missing between one-line summary and description
985:1: E302 expected 2 blank lines, found 1
985: D400 First line should end with '.', not 'e'
985: D205 Blank line missing between one-line summary and description