Libdoc: Handle incoming links where spaces are encoded as `+`.

Fixes #1797.
Improve BuiltIn.Evaluate error messages

For issue #1795 - improve error messages for empty/nonstring expressions
UG: Massive role clean-up.

- Some roles were combined to reduce the amount of roles in general.
  Current roles are explained in roles.rst file.
- Took standard reST roles into use when appropriate (e.g. code).
- With custom rules, emulated Sphinx rules when applicable (e.g. file).
- Configured single backtics to be an alias for code (e.g. `example`).
- Use double backtics as standard alias for literal (e.g. ``example``).

The main motivation was simplify using roles in general to make it
easier to use intallation instructions both as INSTALL.rst (#1779) and
as part of UG. Using standard roles when possible as well as aliases
`foo` and ``bar`` ease that a lot.
tidy
BuiltIn: Use proper sentences ending with '.' in errors.

Test case files received some tidying/cleanup too.
Revert except: Exception change
Merge pull request #1798 from guykisel/evaluate-error-msg

Improve BuiltIn.Evaluate error messages.

Affects also all keywords that use it internally (e.g. `Should Be True`, `Run Keyword If`).
Notify execution context about timeouts earlier.

This is the first step to support Run Keyword If Timeout Occurred in
keyword teardowns (#1790). As a bonus the code is also cleaner.
Merge branch 'master' of https://github.com/robotframework/robotframework