Changed the setupPalette function from being implementation jargon to public, documented and called setupGrayscalePalette.

Also:
 - Changed all references from `setupPalette()` to `setupGrayscalePalette()`.
 - Changed the second argument of `setupGrayscalePalette()` from a std::size_t to an uint8_t.
Changed the uint8_t parameter type of the second argument of setupGrayscalePalette back to std::size_t

This is because changing it back fixes the renderer completely. If the parameter is of type uint8_t the surface generated is bad and does not render.
Also removed the comment right above the first usage in the `render_text` function, since now it doesn't really work. I don't think...
I will definitely look into this later.
Added an invertPalette function to render_text.h
Added `override` to the end of the render function and the end of the update function in the MenuGameState class.