upnpnat implementation

Does not seem to work but worth working on if time allows.