libgimpwidgets: improve/fix more of GimpMemSizeEntry.

Looking further at this widget, many things are not right. Here are the
changes:
- Use binary prefixes (i.e. kibibyte, mebibyte and gibibyte) instead of
  decimal ones. We are making binary shifts so we were actually showing
  the wrong units.
- Round the value to the closest integer when showing it, not towards 0.
  Otherwise I had cases where it was showing 7GiB for an actual value of
  7.69GiB (default as computed by GIMP from my actual physical memory).
  Note that I am actually unsure even rounding makes sense. Shouldn't we
  rather show double values with a few digits after the decimal points?
  For such values, I think it would make sense.
- Do not edit the internally saved accurate value when the entry is
  edited to the same less accurate value as our saved value would be
  shown too. In particular when changing the display unit to a bigger
  one, we don't want to lose accuracy. This is especially true for low
  values. Say you don't have a lot of memory and you set the Tile cache
  size to 1.5GiB (1536MiB), you certainly don't want it to become either
  1 or 2GiB when switching display unit to GiB. Now even if the number
  will still display with less accuracy, the internal value will stay
  accurate.
13 jobs for master in 55 minutes and 9 seconds (queued for 2 seconds)
Status Job ID Name Coverage
  Prepare
passed #842249
build-image

00:02:14

passed #842251
build-image-win32

00:02:24

passed #842250
build-image-win64

00:02:25

 
  Dependencies
passed #842252
deps-debian/testing

00:02:56

passed #842254
deps-win32

00:08:15

passed #842253
deps-win64

00:09:04

 
  Gimp
passed #842255
gimp-debian/testing-autotools

00:10:16

passed #842256
gimp-debian/testing-autotools-distcheck

00:49:56

passed #842258
gimp-debian/testing-clang

00:05:33

passed #842257
gimp-debian/testing-meson

00:09:03

passed #842260
gimp-win32

00:21:55

passed #842259
gimp-win64

00:26:34

 
  Analysis
passed #842261
cppcheck

00:02:12