Distinguish connect failure between first attempt and reconnecting

On the one hand, it does not make sense to BOTH raise a netsnmpAgentException
for connection failure that will undoubtedly be printed to stderr or logged in
some kind of way by agents AND pass on net-snmp's "Warning" log message to
be printed/logged as well.

On the other hand, we can not unconditionally intercept and surpress the
"Warning" log message as there is not only the scenario of connection failure
at startup but also when we got disconnected by the AgentX master. In the
latter case we would get and print/log an "Info" log message that we were
disconnected and net-snmp will retry in, say, 15 seconds and another "Info"
when we'd be connected again, but see no log message for ongoing connection
failure.

Thus, this change reworks the netsnmpAgentStatus cases to move away from a
generic DISCONNECTED status to two distinguished FIRSTCONNECT and RECONNECTING
cases: the connection failure log message will be surpressed and an exception
be raised in the FIRSTCONNECT state only.

And while we're at it, ECONNECT was inspired by <errno.h>, of course, but as
I can't imagine other EWHATEVER conditions, I felt CONNECTFAILED to be a more
self-explainatory name.
Export module's version as obtained from setuptools to enable version checks

Seeing that python-netsnmpagent keeps gaining features in newer versions, I
thought that it makes sense to make its version number available for version
checks in agent code. Especially since some changes such as those to logging
behavior in 61e9c4aa can not really be tested for.