add support for indefinite leases on port mapping

Some routers - namely mine - do not support temporary leases. So, after a bit of research into UPNP, I discovered that you can request an indefinite lease by supplying the value `ui4` as the `NewLeaseDuration` parameter - which I have no idea why or what that value even means.

So, now if you supply `Infinity` as the `ttl` value on `portMapping()`, you will request an indefinite lease.
Quote:

```
In principle UPnP IGD should allow clients to specify a lifetime on
   port mappings. However, a Google search for "UPnP NewLeaseDuration"
   shows that in practice pretty much every client uses
   "<NewLeaseDuration>0</NewLeaseDuration>" to request an infinite
   lease, and the protocol has no way for the NAT gateway to decline
   that infinite lease request and require the client to renew it at
   reasonable intervals. Furthermore, anecdotal evidence is that if the
   client requests a lease other than zero, there are IGD home gateways
   that will ignore the request, fail in other ways, or even crash
   completely. As a client implementer then, you would be well advised
   not to attempt to request a lease other than zero, unless you want
   to suffer the support costs and bad publicity of lots of people
   complaining that your device brought down their entire network.
```

from http://tools.ietf.org/id/draft-cheshire-nat-pmp-07.txt