add libluaautoc as a dependency
lua : add the typing system

A dt-lua type is
* a full user data
* registered to luaautoc
* with index/newindex/pairs metamethods
* if it is a struct, registered members are automatically accessed/iterated
* callbacks are used to access/iterate other members
lua : introduce glist helpers

this allows function to easily push and pull a glist of lautoc-typed objects

the list is converted into a numerically-indexed table of converted objects

when converting back all objects are taken independently of their index
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(dt,"dt")

this will print a dump of the complete environement.

you can set dt.debug.debug to true, but expect the result to be unreadable
lua : add the image type

each image has the following fields
* exif_exposure
* exif_aperture
* exit_iso
* exif_focal_length
* exif_focus_distance
* exif_crop
* exif_maker
* exif_model
* exif_datetime_taken
* filename (RO)
* width (RO)
* height (RO)
* longitude
* latitude
* rating
* creator
* publisher
* title
* description
* rights
* path (RO)
* duplicate_index (RO)
* is_ldr (RO)
* is_hdr (RO)
* is_raw (RO)
* id (RO)
* <colorlabel>

images can't be accessed in this commit.
lua : database handling

dt.database is a "magic table" with the following properties
* #database : number of images in the db
* database[i] : returns the image i
* database.duplicate(image) : returns a new image, duplicate of the param
* database.import(string) : if string is a file, import it. if it's a directory, import all images in the directory

* image:duplicate() is an alias for database.duplicate(image)
lua : add selection handling

 * darktable.gui.selection([table of images]) :
    if a table of images is provided, set the selection to that table
      returns the old selection
    if no table is provided, return the selection
lua : introduce module handling

modules are thing dynamically loaded at runtime, like iop, storages, format

export a table giving the current value for the module

* darktable.storage.<storage_name> : current configuration for the storage
* darktable.format.<format_name> : current configuration for the format
lua : introduce storage

* darktable.register_storage(short_name,name,store,finalizer)

register a new storage that can be selected by the user from the UI.
short name : unique name for the storage
name : name displayed in the UI
store : function(storage,image,format,img_number,img_total,high_quality)
   called once for each image
finalizer : function(storage)
   called after all images have been processed

note that the storage acts like a lua table : you can add your own fields to it
fix compilation when lua is not installed (not just disabled)
fix a missing NULL at the end of a vararg list
fix detection of reused metatables
lua : better handling of numbers in storage, allow to iterate over unknown fields

note that ipairs is not supported yet.
Add key accel to import folders

I added a default of ctrl-shift-i, however that doesn't work on my
system. Probably there is some global window manager shortcut in the
way, so YMMV.
Correctly specify the version of presets

When bumping the version of colorzones the presets we ship were
(half) forgotten.
wb_presets: update to ufraw-cvs
(cherry picked from commit 1ea291c2b59ffdeea370154dd4c9d99c191de134)
Merge branch 'master' of ssh://github.com/darktable-org/darktable
Add single module mode config

This toggles the meaning of shift-clicking, separately configurable for
lighttable & darkroom mode.
cmake: build with libpng 1.5 (from OpenBSD ports)
(cherry picked from commit 97e7ab882ec278e18797b4992e9664faef8f8927)
pthreads: disable the default PTHREAD_MUTEX_STRICT_NP behaviour for OpenBSD
(cherry picked from commit 46be9a13a0bb54aeb28f01fb0d718247aba773d1)