Sensible require system

This way module files don't run every time you require them as a dependency or whatnot, unlike with dofile. plus minetest.require is isolated from general filesystem details. This'll let me fix other people's modules whenever I want to, and possibly eventually let us do away with dofile entirely.

I changed builtin/builtin.lua to use the new system, mostly just as a demonstration.