Added a `SDL_FLip()` call to the end of a main loop iteration.

I didn't realize until trying to render some text, which didn't work.
Then I tried loading an image in the render_text function to replace the text rendering code, which didn't work.
Then I tried loading the same image in the render function of the MenuGameState, didn't work. Also no nullptr SDL_Surface's at all...
Then I realized I never `SDL_Flip()`'d. Ha.
On the plus side, while attempting to fix up the text rendering code I learned that memcpy works just as well as a loop when copying pixels to an SDL_Surface.
Made SDL required in the find_package construct in the CMakeLists.txt
Set up a render_text function, which for now works pretty well, as well as documentation for it.

 - CMake finds and links our program with FreeType.
 - Documented function `SDL_Surface* render_text(std::size_t, const std::string&);`
Made MenuGameState's constructor and destructor non-default and non-noexcept to prep for future additions.