Helper class for finding extended vars.
utests: Refactored test class to make room for related test
Avoid errors about signal handlers when running Robot on thread.

Python doesn't allow non-main threads to register signal handlers.
Robot already ignored errors registering handlers for SIGINT and
SIGTERM if not run on the main thread. When registering the old
handlers back after execution, these errors were shown on the console.

This is fixed by checking are we on the main thread both before
registering our own handlers before execution and also when resetting
old handlers afterwards. Fixes #1848.
Fixed result timestamps when running multiple runs programmatically.

Earlier timestamps were generated based on global START_TIME that was
initialized when `robot` package was initialized. This resulted same
timestamps to be used on different runs.

Now internally used settings objects initilize their own
start_timestamp. When using `robot.run`, new setting objects are
always created for each run, and when using lower level
`TestSuite.run` its more common to give individual settings than whole
setting objects. If same setting objects needs to be reused when
timestamping outputs, start_timestamp needs to be reset between runs.

Fixes #1838.
model.Keyword: Fix API docs.
Preserve keyword/message order in outputs generated by Rebot.

Model stores keywords and messages a keyword has separately. Now
keywords and messages get a sort key that can be used to sort them
later, and that is used by new `children` property added to keywords.

A cleaner solution would have been storing keywords and messages in
same list, and turn existing `messages` and `keywords` lists to
properties that pick items the common list. That would have required
considerable bigger changes to the model and was thus not done
now. That's something to consider later.

Fixes #1867.
js/util.Matcher: Support matching multiline strings. Needed by libdoc search functionality #1872.
Libdoc test data with arguments
Libdoc: Initial search implementation (#1872).

Basic functionality works. UI needs lot of love.
atest cleanup/enhancements
Fixed handling suite teardown failures when ignoring keywords

Suite teardown failures were not noticed if results were processed so
that keywords are ignored. This resulted problems, at least, when
using `--rerunfailed` and when generating only report with Rebot.

Fixes #1873.
Cleaning up fix to handle suite teardown failures if keywords omitted.

- Enhanced unit tests to verify that test/keyword teardowns are handled ok.
- Renamed variables and added a comment to make code more explicit.
Libdoc: Enhancing search #1872

- Initial implementation to search by hash
- Initial styles

Now search is somewhat usesable already!