Adds support for reporting state changes
Defines line array indicies
Fixes problem where socket reported more than once when kernel hash slot changes
No longer uses inode in fingerprint.

Turns out inode changes to 0 when connection goes to TIME_WAIT.

Now fingerprint uniqueness relies on connection socket uniqueness (ip address and
port of local and remote addresses.) Avoid holding two sockets with the same
fingerprint by removing socket from "seen" dictionary as soon as the socket
closes, instead of waiting to clean every CLEAN_INTERVAL minutes.