static: Update to latest versions + some fixes
Version bump + Changelog update for 1.18
Replace custom XML file list reader with the yxml library

This fixes some blatant XML comformance issues with the old custom XML
parser. Yxml isn't fully comformant, either, but it's pretty close.

This also fixes a bug with loading file lists that contain a very large
attribute value somewhere. The old XML parser refused to load those, but
the new parser has no issues with it. AvaDC++ creates such lists.

This parser is a bit slower (2.7s -> 3.1s on a huge list), but I suppose
that isn't too surprising.
fl_load: Don't allow a <Directory> element inside a <File>
dlfile: Call ftruncate() even on file lists

Since it's possible that we may have downloaded a larger file list
before, which got interrupted, and then received a shorter file list on
the second request.
dlfile: Fix off-by-one in hasfreeblock calculation
dlfile: Use separate 'busy' flag for dl_thread_t objects

The busy status was previously inferred from the 'allocated' count, but
it is possible that allocated drops to 0 before dlfile_recv_done() is
called. In turn, it was possible that the same thread is re-used in
dlfile_getchunk(), followed by its allocated count being reset to 0 in
dlfile_recv_done(), followed by its allocated count getting wrapped to
2^32-1 in dlfile_recv(), followed by the thread never ever getting
downloaded to completion.

Separating the busy status from the allocated count should prevent this
situation. (But I haven't tested this very thoroughly yet)
dlfile: Don't completely ignore busy threads in dlfile_getchunk()

They may need to be split, after all...
Version bump + Changelog update for 1.18.1
fl_local: Log which files are being hashed

I also realized that the fl_hash_t.time field wasn't actually being used
at all. It is now.
Add "download_segment" setting to change minimum segment size
Update to latest yxml

...to fix a bug on some ARM devices.
search.c: Ensure incoming UDP messages are zero-terminated strings

Otherwise the strchr()-based parsing may fail.
dlfile: Fix use-after-free when deleting active download from queue
proto.c: Don't unconditionally advance 'off' in adc_parse()

'off' must either point to an empty string or the remainder of the
command. Unconditionally advancing 'off' may cause adc_parse() to read
beyond the given buffer.
cc.c: Fix error handling when dlfile_getchunk() fails

I had assumed that it can't fail, but forgot about filesystem errors.
dl.c: Remove incorrect assertion about dl->have

It is perfectly possible that we receive TTHL data after having
downloaded some data in the case that we happen to request the TTHL data
from multiple users simultaneously.
dl.c: Don't open file list before removing it from the dl queue

Otherwise the background thread may attemt to load the file list before
the download queue code has moved and finalized all file operations.
dlfile.c: Fix another use-after-free in dlfile_recv_done()

I don't expect this to be a very problematic one.
dl.c: Don't free dl->flsel before calling uit_fl_queue