Seperated build, distribute and source directories

Generated objects and executable files now go to $(BUILD_DIR) and distributed files go to $(DISTRIBUTE_DIR). The following targets all, init, test, clean, examples, pycaffe, matcaffe, and distribute can all be built successfully after executing "make clean".

Adding proto target to generate C codes from proto files is convenient when working in an IDE such as Eclipse. Currently this can only be done by executing other more heavy weight targets.

@sergeyk  @Yangqing @LiFeiteng @niuzhiheng   

issue: #1 #22