Also changes the way timeouts happen, since right now if a timeout was met (which it mostly wasn't), it would run the error callback twice causing potentially undefined behaviour
How to build test:
mkdir build_test
cd build_test
cmake -DBUILD_TESTS=ON ..
make -j
Then to run the tests, use either:
make test
ctest
./chatterino-test