Add response timeout function

Please find attached this pull request that implements a timeout on the mg_getreq() (or mg_get_response() as you renamed it).  I needed this because a server I was connecting to seemed to hang for a very long time while processing a response.

I have added two new functions to the API:
* mg_connect_non_block() will call mg_connect() and (if successful) call set_non_blocking_mode() on the socket)
* mg_getreq_timeout() takes an additional timeout argument.  It polls the socket and if an event is raised then it will call the standard mg_getreq() function.

If you have any better ideas on how this could be done then let me know and I'll attempt to do it.