storage : add "self" parameter to a couple of methods

needed by lua to use the same C function for multiple storages
signal : add a signal before export is started

This signal has one parameter : a glist of the imgid to be exported
This is used by lua to have callbacks
signal : add a signal after processing but before the storage uses the new image

this is used by lua to be able to tweak the exported image before the storage moves it to its final place
imageio : allow to find the index from the format or storage
signal : new signal for when a new storage is added

needed for lua because storages can be added after the GUI is built
storage : add a specific function to add a storage

that function will add it to the list and send the proper signal.
it will NOT initialise the storage structure.

This is needed by lua because lua will add storages after the initial
build of the storage list
colorlabels : use a table of names instead of a switch case.

lua can use the table directly to handle the enum
dt_control_export : pass the list of images to export instead of always using the selection
styles : move the calls to dt_control_log out of the core and into the UI layers
Merge remote-tracking branch 'origin/lua_review'