FcCharSetPutLeaf(): Fix missing move of new_leaves contents

If the `realloc(numbers)` call fails, shrinking the leaves allocation
back to the old size is not guaranteed to return the old pointer value.
While this might be the case with some malloc() implementations, realloc()
could also just mark the following area as free.

See https://bugs.freedesktop.org/show_bug.cgi?id=90867
11 jobs for FcCharSetPutLeaf-realloc-shrink in 11 minutes (queued for 1 second)
Status Job ID Name Coverage
  Build
passed meson android arm64 fedora #12212463

00:01:29

passed meson macos #12212461
gst-macos-10.15

00:03:40

passed meson-mingw-w64-build #12212458

00:04:16

manual meson msys2 #12212462
docker windows 1809 allowed to fail manual
passed meson-shared-build #12212456

00:06:07

passed meson-static-build #12212457

00:04:17

passed meson vs2017 amd64 #12212459
docker windows 1809

00:01:14

passed meson vs2017 x86 #12212460
docker windows 1809

00:01:13

passed mingw-build #12212455

00:07:58

passed shared-build #12212453

00:11:00

passed static-build #12212454

00:06:20