I have bitcoind serving cfilters to an LND node on my local network on separate machines. Both have `192.168.1.x` IP addresses and they connect fine using neutrino. However, the LND node does not appear in the `bitcoin-cli -netinfo` table.

The reason is because if you look at the `getpeerinfo` response:

```
{
  "id": 11728,
  "addr": "192.168.1.153:64367",
  "addrbind": "192.168.1.13:8333",
  "addrlocal": "192.168.1.13:8333",
  "network": "not_publicly_routable",
  "services": "0000000000000048",
  "servicesnames": [
    "WITNESS",
    "COMPACT_FILTERS"
  ],
...
```

...so bitcoin-cli ignores the peer here:

https://github.com/bitcoin/bitcoin/blob/9c47eb450346937b3d7ee21b9e669b5c91a7ed6c/src/bitcoin-cli.cpp#L477-L479

...expecting one of these strings only:

https://github.com/bitcoin/bitcoin/blob/9c47eb450346937b3d7ee21b9e669b5c91a7ed6c/src/bitcoin-cli.cpp#L58

I'm happy to fix / add this myself unless there's a reason? Maybe instead of skipping the peer we can just add an "unknown network" category, or "other" ...?

cc: @jonatack 
{
public:
    virtual ~BaseRequestHandler() = default;
    virtual UniValue PrepareRequest(const std::string& method, const std::vector<std::string>& args) = 0;
    virtual UniValue ProcessReply(const UniValue &batch_in) = 0;
};
class AddrinfoRequestHandler : public BaseRequestHandler
{
private:
    int8_t NetworkStringToId(const std::string& str) const
    {
        for (size_t i = 0; i < NETWORKS.size(); ++i) {
            if (str == NETWORKS[i]) return i;
        }
        return UNKNOWN_NETWORK;
    }
public:
    UniValue PrepareRequest(const std::string& method, const std::vector<std::string>& args) override
    {
        if (!args.empty()) {
            throw std::runtime_error("-addrinfo takes no arguments");
        }
        UniValue params{RPCConvertValues("getnodeaddresses", std::vector<std::string>{{"0"}})};
        return JSONRPCRequestObj("getnodeaddresses", params, 1);
    }
    UniValue ProcessReply(const UniValue& reply) override