Fix minor memleak

Instead of just dropping empty strings from the assemblies_path array,
they should be freed to avoid leaking them.
Canonicalize folders when setting up assemblies_path

When MONO_PATH contains relative folders, they are meant as relative
from where the application is launched, not from the current directory
of each assembly load.

Fixes #19380.
Document MONO_PATH behaviour for relative paths

Tha previous behaviour of MONO_PATH for relative paths (that implied
using the paths as relative to the current directory when loading
assemblies) was not yet documented and led to some failures when
executing tests.

In order to fix the failures, a new behaviour has been introduced:
relative paths are resolved at launch time, so that the folders which
are examined when loading assemblies do not depend on the current path
of the program.

This patchset is released under the MIT license.
Merge pull request #1013 from ranma42/fix-19380

Fix 19380