Rewrite module-setup.lua handling of non-installed modules

Instead of capturing all module names starting with "snogray." and
returning a function thatdelays the actual searching until load time,
just try loading the module in the searcher, returning nil when we
can't find anything.  This allows the standard Lua searchers a crack
at finding the module when ours can't.

This is cleaner conceptually (loadfile does exactly what we need,
reading the file contents and returning a function that instantiates
the load) and also allows "snogray." modules to be loaded via other
searchers, most importantly the preload searcher.
snogray.lua: Handle errors in --pre/post-eval more gracefully
Rearrange Lua utility code

Move some of it into a new directory "lua-util".

Put the read_file function into a new proper module "snogray.util"
instead of just stuffing it in the snograw module.  Currently
read_file is the only thing there, but this will probably change.
Move SWIG Lua vector conversion stuff into lua-util subdir
Move various Lua utility code into lua-util subdir
Move Lua compatibility code into a separate header file