Lua review

Ok, this is the big one...

with all these commits it's possible to write a storage entirely in lua, and thus actually do some usefull stuff

please read each commit individually to understand what they do (commit messages contain documentation of the lua api until I update the wiki)

also not the lua script darktable.debug which is the main way to dump lua objects in darktable