compiler: Save a single copy of the softfp64 shader in the context.

We were recompiling the softfp64 library of functions from GLSL to NIR
every time we compiled a shader that used fp64.  Worse, we were ralloc
stealing it to the GL context.  This meant that we'd accumulate lots of
copies for the lifetime of the context, which was a big space leak.

Instead, we can simply stash a single copy in the GL context, and use
it for subsequent compiles.  Having a single copy should be fine from
a memory context point of view: nir_inline_function_impl already clones
the necessary nir_function_impl's as it inlines.

KHR-GL45.enhanced_layouts.ssb_member_align_non_power_of_2 was previously
OOM'ing a system with 16GB of RAM when using softfp64.  Now it finishes
much more quickly and uses only ~200MB of RAM.

Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
10 jobs for !1302 with softfp64 in 9 minutes and 59 seconds (queued for 2 seconds)
detached
Status Job ID Name Coverage
  Containers Build
passed #413067
debian

00:00:27

 
  Build+Test
passed #413069
meson-clang

00:08:41

passed #413073
meson-clover

00:09:29

passed #413072
meson-main

00:06:30

passed #413068
meson-swr-glvnd

00:06:02

passed #413074
meson-vulkan

00:03:15

passed #413076
scons-llvm

00:05:49

passed #413075
scons-nollvm

00:06:05

passed #413070
scons-swr

00:05:58

passed #413071
scons-win64

00:06:28