Allow using encoded images in Datum, LevelDB, LMDB

This PR allows to store the image files directly into the DB, which saves a lot of space and sacrifices only a little bit of speed (not noticeable since it is done during the prefetching).
- To convert a set of images and leave them encoded (just copy the copy image file) do:
./build/tools/conver_imageset -encoded=true 
- Added a TIMING flag to Makefile to see if prefetch is fast enough compared to the forward/backward pass.
  - To use add TIMING := 1 to your Makefile.config
  - This would display the time used in prefetch (reading images + transforming images)
  - The time used in the forward pass 
  - The time used in the backward pass
- Speeded up and update the code in WindowDatalayer:
  - Now it read and transform faster the window images into blobs.
  - It has an option to cache_images into memory in case of slow HDD. It caches the encoded images to save memory.
  - Now it also accepts mean_values instead of mean_file.
- This PR also speed up the transformation applied to cv::Mat, this should allow to add easily new transformation done directly with cv::Mat using OpenCV
I liked this better as 3 lines. Is the `cv::Mat` pipeline speed so crucial / does it make such a difference to first transform to `Datum`?