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 late. Just to clarify, this was broken before I started this patch series, I guess no one had a IGD2 client to test with.

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.