Use a vector to handle clients instead of a linked list

- Modify the client handling code to use a vector instead of a linked list
- Fix a memory error in QueuePacket
- Use vasnprintf for Error instead of the nasty malloc + vsnprintf crap, vasnprintf is much safer.
- Deallocate the clients and their queues at exit
- Temporarily disable the ProcessPacket function, something is messed up in there and preventing more packets from being received.
Fixed an error with receiving packets incorrectly resulting in corruption of the listening socket
Finally fix file transfers with epoll, we still memleak like crazy though