Move code to set longitude/latitude into a function.

This is a code refactoring to be used by the undo support.
Add generic undo support in darktable.
Clear undo list when switching views.
Add undo for image position (geo-tag) in map view.

This used the new undo generic support.
Add support for redo.
Prefix all routines with dt_undo_ to avoid polluting namespace.
thumbnails: don't crash if there is no exif thumb.
thumbnails: remove black rims from canon thumbs
opencl: add support for 'wavelets' mode in denoiseprofiled

this commit also adds a fix in our cpu code. the use of _mm_rcp_ps()
in eaw_decompose would sum up to visible deviations from the expected
output due to its inherently limited accuracy. we replace it by
a call to _mm_div_ps().
opencl: fix for reduction code in module globaltonemap
Merge branch 'denoiseprofile_ocl'
handle missing styles or not inited var in config file

  if the lighttable/export/style is not inited, or the style has been
  deleted, we default again to "none", to avoid using an empty string later
Verbose rawspeed exceptions
Let rawspeed identify itself in printfs
imageio_rawspeed: gotta catch em all
usermanual: a truckload of smaller changes - mostly language related
Merge branch 'master' of ssh://github.com/darktable-org/darktable
wb_presets: Pentax K-5 II s (thanks to Jack Bowling)
usermanual: another round of small fixes
The undo support is now based on a dt_undo_t struct on darktable object.

With this new desing it will be easier to have separate undo list for
different views if needed.

Change map view to use this new design.