Record all HTTP headers

So, Cookie is sent as a Header, but I am treating it seperately;
all the cookies are put into a map<string,string> as appropriate.

Any other headers just get dumped into a header map<string,string>

Need this so I can do Websockets. Le sigh.
Websocket Handshake

Credit to René Nyffenegger <rene.nyffenegger@adp-gmbh.ch>
for base64.cpp and base64.h

Using OpenSSL for SHA1

Apparently this magic key handshake is for security.
But not for encryption. It's to stop people using XMLRequests
in Javascript to trick the server into making a websocket
without actually connecting. Or something. Sigh.
Sending for WebSocket Server

It seems to work... will probably explode if I do anything complicated.
WebSocket Server Implemented

It can send and decode messages.
I haven't tried it with messages > 125 characters.

For sending, just use one frame.
Receiving will in theory combine frames as necessary, although I haven't tested this.

So I'm currently using std::string as a dynamic array of uint8_t
And then doing direct read/write to std::string::c_str()

It might explode in a firey ball of segfaults but it works for my tester.

I'm pretty sure I'm voilating every single one of Meyer's rules in "Effective C++"
at least once in this library...
Refactor, Fix Websocket sending/receiving

That was pretty brutal...

Spent hours on a bug... I thought use of char instead of uint8_t
was causing it but it was because I forgot to Socket::Valid virtual.
There were other things hideously wrong... my memory is fading fast...

I don't know. It works now. I hope.

wscat is netcat but using WebSockets.
This is how I found all the bugs.