Add support for IGD2 AddAnyPortMapping DeletePortMappingRange

Added support in the client library, the test utility, and in the python bindings.

Can confirm AddAnyPortMapping method works as expected.
DeletePortMappingRange is broken due to an as yet undiagnosed issue in ``upnp_get_portmappings_in_range()`` or in ``get_portmappings_in_range()`` which i'll look at tomorrow.

I'll fix the issue with DeletePortMappingRange as a separate pull request as I don't want to put too many commits in here at once.

Happy to change things if you have feedback.