fix EXIF data generated by the camera

 * ensure that all IFDs are 12 bytes long; previously when the data field contained less than 4 bytes of data the IFDs were truncated too soon
 * change all data types and number of components according to the EXIF standard
 * get the actual status of the flash from the camera; previosly the camera flash settings (which are not valid EXIF values) were copied in
 * fix calculations of GPS coordinates
With these changes the EXIF generated by the camera are valid and readable. There are still issues with some tags but most data is correct now.
Thanks to dafnis, who identified the problematic fields, and tryptophane, who helped testing.

Signed-off-by: task650 <task650@gmail.com>