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.
To make this less error-prone, we grow numbers first and then grow leaves
since the numbers content does not need to be relocated, but leaves does.

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

00:01:46

passed meson macos #12886096
gst-macos-10.15

00:05:34

passed meson-mingw-w64-build #12886093

00:07:15

manual meson msys2 #12886097
docker windows 1809 allowed to fail manual
passed meson-shared-build #12886091

00:07:32

passed meson-static-build #12886092

00:06:38

passed meson vs2017 amd64 #12886094
docker windows 1809

00:01:23

passed meson vs2017 x86 #12886095
docker windows 1809

00:01:19

passed mingw-build #12886090

00:07:15

passed shared-build #12886088

00:10:19

passed static-build #12886089

00:08:40