adding code to do NAT type detection, plus other changes, see comment below. 

1. updated package dependency to use newer freedom and uproxy-lib
2. Adding server code for NAT detection, and server testing client, both in python. 
3. Update javascript (typescript) code to do NAT type detection. 
4. remove end-2-end testing code. Revised version is now available in uproxy-end-to-end as freedom module. 
OK, it's a kind of test client. No harm in having >1 clients.

Why the `json` prefix on each filename? I would strongly suggest renaming:

`jsonclient.cfg` -> `client.cfg`
`jsonclient.py` -> `client.py`
`jsonserv.cfg` -> `server.cfg`
`jsonserv.py` -> `server.py`

Also, I think we should also move this `server/` folder under `src/`.

You might also think about renaming the `diagnose` directory to `jsclient` (or similar) and moving the Python client to its own folder, e.g. `pyclent`. Basically, less surprising locations!