We cannot use `std::variant` yet, because not all of the compilers we support have a working version of it yet. For now, I just replaced it with multiple `std::option` which is good enough, because currently `CellValue` is only used for the cells that are actually drawn in the spreadsheet.