lua : introduce history type

This doesn't handle whole history, but history elements.
history elements are seen as tables with three fields, num, op and name.

all fields are read only

image object gain two fields
image:reset() will reset the history (i.e remove all processing)
image:get_history will return the history object for the image
lua : add darktable.debug with some debugging function

currently this contains two fields

darktable.debug.debug : means we want extra debugging information

dartabke.debug.dump(object,name) : will return a string describing object. object can be anything, name is a name to help pretty printing

from now on, your test rc.lua should start with the following code

dt = require "darktable"
print(dt.debug.dump(_G,"Global environement")

this will print a dump of the complete environement
everything else