Refactor data layers to avoid duplication of data transformation code

As discussed in #941, I started refactoring the data layers to avoid the current code duplication of data
transformations. 

- I ceated a new protobuf message TransformerParameter that contains the transformation parameters 
(crop, mirror, mean file...)
- I created a new class DataTransformer that takes care of applying the transformation defined in the protobuf file to the data
- I refactored DataLayer to use this new class.
- I updated the code to update the old network definition files to the new one
- I updated the unit tests

Could @shelhamer or someone else could have a look at it before I go about refactoring the other
data layers?