Auto renew portmappings

Discovery timeout raises an event.
Permanent mappings are created when NAT only supports that kind of
mappings.
Protocol to use in discovery process can be specified.
Automatic renew port mappings before expiration.
Add operations timeout after 4 seconds.
Add parameters validation in Mapping class.
Fix UnhandledException event was never raised.