$LinkToHashtables no can be a directory also

$LinkToHashtables will search for hashtables if a directory is
specified, and it will read the hash if a hash file is specified.
Bug fixed in $MakeHashTable where the wrong path would be saved in hashfile.

Added extra asserts.
Using -LiteralPath as much as possible in Test-Path to circumvent bugs.
Make-HashTableFromXML a bit optimized

Added some comments