Fixed memory leak in client.c: threads were not freeing ip_addr before freeing the arguments wrapper structure.
Added pthread_cleanup handler to destroy a client. This allows calling pthread_exit() when an error occurs during a thread's job. Clients are now destroyed by calling pthread_exit()
Added malloc return values checking in trie.c, and appropriate error constants
Added SIG_IGN handler for SIGPIPE.
Finished implementing USER and NICK commands.
Fixed a deadlock situation in client_list_add()
Isolated recv() and send() in msgio.c. Every function that wants to write to or read from a client must use write_to() and read_from(), declared in msgio.h (preparing for SSL sockets abstraction...)
Added SO_REUSEADDR to avoid TCP TIME_WAIT state.