gui2/tgame_cache_options: Handle negative values from filesystem::dir_size()

The Boost.filesystem version of this function yields a negative value of
-1 to signify a non-critical error. For some reason, utils::si_string()
formats this incorrectly and even yields an incorrect number, probably
due to some floating point math mess-up.

Kind of fixes bug #22261 by preventing a call to utils::si_string() with
a negative value, but that function really ought to be fixed separately
anyway.