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.
To be completely honest, I really have no idea why. I read this guy's comment:

http://www.dslreports.com/forum/remark,7106984

Tried to use `0`, but it wouldn't create the mapping, but wouldn't fail which led me to believe that the mapping did get created, but expired instantly. When I used `'ui4'` it created the mapping.

I'm scratching my head, too. Any ideas?