Add virtualized destructors to allow children to destruct properly.
Set up network thread to block waiting for packets and run at a higher priority so that they get processed immediately.
Modify observer list test to allocate observers on the heap instead of the stack. Stack was overflowing.
Added tests for sending and receiving over the network on both the loopback address and a 192.168 address.