MKL/non-MKL merge

(Note: the reason you are seeing a lot of files being changed is because I also did a merge from the master branch. The changes that are not already in the master branch could be seen at:
https://github.com/rowlanddepp/caffe/commit/9bba82096c5ec36f61f2dc2c701b109cf719ec94
)

A major rewrite of all the MKL vsl interfaces. This commit allows:

(1) recoverting the code back to a uniform VSL interface. With MKL present, VSL functions are called. With no MKL, functions defined in include/caffe/util/mkl_alternate.hpp kicks in and work as a simple backend. As most computation time is spent on gemm, the simple implementation does not lead to noticeable computation overhead.

(2) As a result, the current code only relies on basic blas, and eigen is not required.

(3) A simple flag USE_MKL to control whether to use MKL or not.

(4) If one wants to implement better VSL functions, only mkl_alternate.hpp needs to be changed, allowing future codes to be more modularized.

(5) Reverted back to using atlas and cblas, since the default openblas on ubuntu is not stable yet. One can simply change the link library to use openblas if desired.

Hopefully this will help us merge boost-eigen and the master thread more easily, and help MKL and non MKL to coexist in the same branch with little maintenance overhead.