Added timeout option and socket closing verification

Hi Sergey,

I encountered a problem while doing some heavy usage of zbxsend in our monitoring infrastructure and noticed that some of our monitoring tests stopped sending information to zabbix. After checking our logs I found that the problem was with the zbxsend module.

In some rare cases the socket tried to receive information from zabbix and just hanged causing the socket to remain open forever and our test not to finish. 

I implemented a timeout feature for the socket (default is 15 seconds) and I also close the socket in any case of failure or success. 

Users that are using the current version should not feel any change unless they reach the timeout (which will return false).

I think this is an important addition to the module and I'll be happy to add it to the official zbxsend version.

If you decide to use this version please also update the pip package so automation systems like chef can get the updated version.

Thank you,
Tom Kregenbild.
@tomkregenbild I don't see any sense in those nested try/excepts. You should move error reporting to outer try/except. 

Also, AFAIK there is no sense in closing socket manually, since it will be automatically closed when leaving this function. But you can keep that part, just move it to `finally` section of the outer try/except.