[JuliaLowering] Tidy up node creation functions (#60191)
We currently use keyword arguments as arbitrary key-value pairs in a
number of places, which I've realized isn't really how they're intended to be
used.
This change fixes this and reduces the JuliaLowering package image size
by about 20% on my machine from `26.910 MiB -> 21.701 MiB`, or when
compiled into sysbase.dylib, `+55MB -> +45MB`. Unfortunately no change to
precompile time as I had hoped, but I figured this is worth doing
anyway.
Lowering performance looks unchanged.
I've just used `Vector{Pair}` or explicit `setattr` calls, but let me
know if there's a better way of doing this.
Also let me know if you have a reason for the difference in size when
compiled into Base---I don't think I'm accidentally producing two copies, but you
never know.