* new function in local storage to get list of folders at root level, given some path
* use last week epoch as the default time for mods dates (created, added, etc...)
* UGC: some params checks according to SDK docs for CreateQueryXXX() functions
* fixed some mistakes
* common mods subscription state between ugc and remote storage
* ugc: implement SetUserItemVote(), GetUserItemVote(), AddItemToFavorites(), RemoveItemFromFavorites(), favorite mods list is now save in `favorites.txt` in the user data folder
* ugc: make sure returned mod folder from GetItemInstallInfo() is null terminated & validate arg
* + added missing implementation of (de)sanitize_string when NO_DISK_WRITE is defined which this fixes compilation of lobby_connect
* + check for empty string in (de)sanitize_file_name() before accessing its items
* + revert the change to SetProduct() and SetGameDescription()
* + less verbose return in Steam_GameServer::BSecure()
* + add missing note in ReadMe about libssq
More generic json loading allows to load a json from a specified folder rather than the "inventory" directory.
Also changed achievements location to <appid> root diectory
Added achievements support. Achievements are saved like real steam, see your inventory directory.(like items, uses a .json, tool can be used to dump achievements from steam public api).
You will need a public apikey. (See https://steamcommunity.com/dev)
Reworked item support to split inventory items to defined items.
Added check on directory in Local_Storage::file_exists.
Added check in get_filenames_recursive if last char is the path separator (some use cases were adding a path separator even if there were already one).
In base.h, added check on s and r, that will avoid an out-of-range vector exception on Visual Studio, same for network.cpp.