Fix Surface::fill_with_color().

Variable-size array are not valid in C++: use a vector instead.
GCC accepts this as a C++ extension, but I had a stack corruption.