Cosmetics
Add netsnmptestenv Python module

python-netsnmpagent needs test cases, integration tests with net-snmp to be
precise. These tests will need the same temporary net-snmp test environments
as the example agents, so it makes sense to unify such code into a new Python
module "netsnmptestenv".

Initially this module will be used by netsnmpagent tests, later on we'll
modify the example agents so that they can use it, too, obsoleting the need
for shell script wrappers. For this reason and because the example agents end
up in /usr/share/doc/packages/python-netsnmpagent/examples/ in binary
distributions, netsnmptestenv will be installed into the system along with
the two existing Python modules netsnmpapi and netsnmpagent.

For now, only one test environment can be created at the same time because we
hardcode the TCP ports used by net-snmp. We'll replace this with random port
assignment/port in-use detection code later.

And of course the new module gets test cases itself, too :-)
netsnmpapi: define netsnmp_init_mib() instead of unused init_mib()

In netsnmpapi we defined init_mib() but in netsnmpagent we called
netsnmp_init_mib() which was undefined in netsnmpapi. That didn't cause trouble
because a.) ctypes implicitly treated it as being "void netsnmp_init_mib(void)"
and b.) by coincidence that matched the function signature.

The confusion stemmed from a function rename in the net-snmp project, see
https://www.mail-archive.com/net-snmp-coders%40lists.sourceforge.net/msg08417.html
netsnmpagent: Rename __del__ to shutdown()

I ran into the common "In Python __del__ is no destructor" trap. The cleanup
code called there was possibly never executed at all. Rename the method to
"shutdown" to give agents a chance to explicitly call it at their own
shutdown.
netsnmpagent: Call net-snmp's shutdown_agent() in shutdown() method

Properly written agents should call shutdown_agent() in addition to
snmp_shutdown() as we did a init_agent() before the init_snmp() call.

Note: with ALL net-snmp versions up to and including the current 5.7.3 beta
this will still NOT allow for proper cleanup in such a way that you could
"del" the netsnmpAgent instance, create a new one and have that one connect to
the master agent successfully. Even with 5.7.x's code cleanups and the subsequent
removal of "#ifdef SHUTDOWN_AGENT_CLEANLY" in snmpd.c, it still seems to be
necessary to exit the process (or thread) and have the OS do additional
cleanup work if a substantially different netsnmpAgent instance (eg. with a
different MasterSocket) is to be created. Unfortunately this also affects
test cases where one wants to run each test in a defined, clean and
reproducible environment.