Refactoring and speed improvements

* Refactored to make creating tests easier. 
* Use maps instead of slices for storing messages (my tests shows up to 2.5x performance improvement)
* Added RAWTCPListener tests
* TCPMessage now use close(channel) to notify that its completed