use Mono.Nat for UPnP port forwarding

- might support more devices
- supports internal and external port mapping
- discover the device only once (at startup)
Better UPNP logging. Also fixes a compile error
enhanced UPnP discovery usability

- don't search for NATs forever, 5 seconds seem to be enough
- disable the UPnP checkbox if discovery failed
- no computer industry acronyms in user GUI
- don't remove port-forwarding twice, just once on shutdown
- user-configurable settings for debugging
Merge pull request #2403 from Mailaender/mono-nat

Use Mono.Nat for UPnP port forwarding.