Move data_mean into data_transformer remove datum_* from BaseData

Conflicts:

	src/caffe/layers/memory_data_layer.cpp
Fixed MemoryDataLayer to make it work with pycaffe
Initial cv::Mat transformation

Added cv::Mat transformation to ImageDataLayer

Conflicts:

	src/caffe/layers/image_data_layer.cpp

Added transform Datum to Blob

Conflicts:

	src/caffe/layers/base_data_layer.cpp
	src/caffe/layers/base_data_layer.cu

Added transform cv::Mat to Blob

Added transform Vector<Datum> to Blob

Conflicts:
	src/caffe/data_transformer.cpp
Remove Datum from WindowDataLayer

Conflicts:

	src/caffe/layers/window_data_layer.cpp
Update description data_transformer.hpp
Refactor common code

Make lint happy

Conflicts:
	src/caffe/data_transformer.cpp
Add flag check_size=false to convert_imageset
Added test_io and faster cv::Mat processing

Conflicts:
	src/caffe/util/io.cpp
Add CVMatToDatum
Add ReadImageToDatumReference to test_io
Added more tests to test_io for CVMatToDatum
Added mean_value to specify mean channel substraction
Added example of use to models/bvlc_reference_caffenet/train_val_mean_value.prototxt
Fix OSX compilation for nvcc with opencv
Fix calls to Rand() and test_data_layer error

Remove benchmarking code, fixed data_transformer doxygen docs
Fixed crop error and add test_data_transformer

Make lint happy

Fix Name conventions
bundle pixel mean into CaffeNet as comments
uin8 spell check
Merge pull request #1070 from sguada/move_data_mean

Refactor data_transform to allow datum, cv:Mat and Blob transformation
Merge remote-tracking branch 'upstream/dev' into dev