upnp: only delete mappings that match our port

else neighboring LAN clients delete each other's mappings

Signed-off-by: Thomas Stilwell <stilwellt@openlabs.co>
pip breaks after upgrading python package requests
Update and rename 01 Ricardian-Contracts.md to 01 Ricardian Contracts.md
Merge pull request #563 from y12studio/requests-pip-break

pip break in Docker Ubuntu 14.04  build
Merge pull request #562 from benemorius/upnp

upnp: only delete mappings that match our port
Unit tests for node/contact.py.
Refactor Contact.

* Simplify __eq__ and derive __ne__ from __eq__.
    Implementing both __eq__ and __ne__ is redundant and error prone.
    One of them should be derived from the other, to guard against
    subtle errors.
* Implement __repr__ and derive __str__ automatically.
    Implementing __str__ but not __repr__ is considered bad practice,
    and makes debugging a bit awkward, because Python drops in a default
    replacement for the missing __repr__. However, if only __repr__ is
    implemented, then it will be used for both repr and str calls.
* Remove execute flag of node/contact.py.