Fixes #16220, see #16220 (comment)
- util/system datadir code should not care about wallets or look for or create any wallet paths
- If -walletdir is specified, wallet code should use that directory to locate and list wallets.
- If -walletdir is specified and path is not a directory, wallet init should return a fatal error and refuse to start
- If -walletdir is not specified, wallet code should use <datadir>/wallets as the directory to locate and list wallets.
- If -walletdir is not specified and <datadir>/wallets does not exist, wallet init code should create it
- Before creating <datadir>/wallets wallet should call ListWalletDir ListDatabases on <datadir>
- If list is empty wallet should create <datadir>/wallets as a directory, otherwise it should create it as a symlink pointing to .