zeroconf: maintain txt record order when publishing service
zeroconf/osx: maintain txt field order on publish

OSX create the txt records using a dictionary, so to maintain
order, we use a custom hash function that put all elements
in the same hash bucket.
configure: allow GIT_REV to be read from VERSION file
needed for building outside of a git repo
release-source script needs bash
on some systems /bin/sh is a simplistic posix shell
Separate locks for the different lists managed by XBPython so that they don't interfere with each other. Closes #14048
Merge pull request #1934 from wsnipex/gitrev

allow gitrev to be read from file
don't clip outline'd text as the outline will be clipped on the left otherwise
Merge pull request #1684 from elupus/mdns

Make sure TXT records are in same order as setup on mdns announce
Handle the possibility that a XBPython registration list is modified in a callback.
Merge pull request #2191 from jimfcarroll/fix-14048

Fix #14048 - Change the locking in XBPython/XBPyThread
changes inside Directory and File to save and use substituted paths when using DirectoryCache
changes inside DirectoryCache as it will now only save given folders and files without using path substitution on them