lua : make typeid functions actually be typeid based and not name based
lua : create a generic way to handle singletons

we have enough of these that they deserve proper handling
lua : only have ipairs if we have len
lua : remove a stray \n in preference description
lua : when introspecting in debug mode and an object has no metatable, report it
opencl: make all numerical float constants well-behaving; fixes #9478

the ability to properly parse valid float constants has been taken away
from recent OpenCL compilers for whatever reason. so we need a workaround.