Fixed TcpSocket::set_descriptor(nullptr) causing an invalid read from address 0x0.
Improved HTTP response/request parsing so that they report a parse failure if the first few bytes of the HTTP request don't match the expected format rather than continuing to look for an end of header.
Fixed broken fr::Http::url_encode() implementation.
Optimised fr::Http::url_decode() implementation.
Added fr::Http unit tests.
Fixed HTTP request parse failing if the URI was too short.
Fixed HTTP parser not converting POST/GET data to lowercase before storing it, making post and get data which contained capitals impossible to access.
Receiving an http request/response will now return errors like HttpHeaderTooBig, instead of the type being set to that.
Added fr::Socket::status_to_string for converting status values into English strings.
Started work on tests for fr::HttpRequest.
Fixed the final POST data variable containing header data it shouldn't (\r\n\r\n).
Fixed fr::Http::header_exists, and family, not converting things to lowercase first.