atests: Enhancing 'Should Contain Tests'

- Enhanced suppport for passing custom status.
  This eases creating tests for --merge.
- Case-sensitive test name matching.
- Removed 'Check Suite Contains Tests' alias.

Last two changes required quite a few changes to tests.
Suggest variable names when variable matching fails

Resolves #1804 and extends work done in #1776 for #888

- Moved generic recommendation code to a new utils module
- Simplified API of generic recommendation code
- Modified 'variable not found' error messages for readability
Rebot: New generic --merge functionality (#

- Similar to old --rerunmerge which it replaces.
- Main difference is that new suites/tests in merged outputs are added
  into the original suite structure. Earlier they caused an error.
- Having different root suites is still an error, nowadays actually
  a fatal one failing the whole post-processing.
- Suite start/end times are cleared if tests/suites added to it.
  Causes elapsed time to be re-calculated. Times would be correct anyway.

TODO:
- Decided how to add a note that tests/suites have been added/replaced.
  Currently test/suite message is updated, but could also use documentation
  and with suits also Metadata.
- Documentation in User Guide.
Small enhancements to --help
rerunmerger.ReRunMerger -> merger.Merger
XML: Document that XML modifying kws never write changes back to disk.
XML: Use new ``code style`` w/ args etc. `xxx` style can accidentally create a link and doesnt have that good style either.
XML: Document that XML modifying kws never write changes back to disk, part 2.
Merge pull request #1803 from guykisel/variable-recommendations

Missing/misspelled variable name recommendations. Resolves #1804. Thanks @guykisel!
tasks.py: jar task now accepts custom jython version
.
task to get issues. Related to #1810
Warning about custom kw overriding std kw is now link to executed kw.

Required delaying logging the warning until the keyword actually is executed.
Fixes #1813.
Enhance warning about custom kw overriding std kw.

If either lib in question is imported using WITH NAME syntax, the
error shows both the original name and the given alias. Fixes #1814.
Fix Jython test failed due to non-existing variable error message changes related to #1804
Consider line with `|` alone empty in plain text format. Fixes #1816.
atests: Trailing spaces

- Added a note not to remove them in a place where they are on purpose.
- Removed them from other places.
tasks.py: added note that BUILD.rst contains more info
String.Convert To Lowercase (#1735): Use our custom util that avoids IronPython bug
IronPython atest workarounds.

- Made non-ASCII tests that cannot work on IronPython non-critical.
- Longer timeouts for tests that can be sloooow.