Don't allocate the socket structure, use a vector to manage memory instead

- CHanged how all the socket multiplexers to support the socket_t structures not being allocated
- Added ReceivePackets to socket.c and moved the packet queueing code to socket.c since they're socket related functions
- Removed a lot of cruft code
- Kqueue needs to be tested with these new changes