CMake `op_library` function
CMake `op_library` function

* It is used to create an operator library. It handles to split CPU and
  GPU sources and links operator common libraries.
* It also give a reasonable warning and error when operator developer
  not correctly implement an operator.
  * Warning for lack of GPU kernel.
* Same interface as `cc_library` to make code style consistent.

hedaoyuan/Paddle,luotao1/Paddle,yu239/Paddle,pkuyym/Paddle,PaddlePaddle/Paddle,reyoung/Paddle,Canpio/Paddle,tensor-tang/Paddle,tensor-tang/Paddle,putcn/Paddle,QiJune/Paddle,lcy-seso/Paddle,pengli09/Paddle,PaddlePaddle/Paddle,luotao1/Paddle,pengli09/Paddle,PaddlePaddle/Paddle,lispc/Paddle,reyoung/Paddle,hedaoyuan/Paddle,luotao1/Paddle,pengli09/Paddle,luotao1/Paddle,lcy-seso/Paddle,putcn/Paddle,QiJune/Paddle,jacquesqiao/Paddle,yu239/Paddle,PaddlePaddle/Paddle,reyoung/Paddle,QiJune/Paddle,reyoung/Paddle,baidu/Paddle,luotao1/Paddle,hedaoyuan/Paddle,lcy-seso/Paddle,pkuyym/Paddle,yu239/Paddle,yu239/Paddle,tensor-tang/Paddle,jacquesqiao/Paddle,Canpio/Paddle,lispc/Paddle,putcn/Paddle,pkuyym/Paddle,lispc/Paddle,baidu/Paddle,PaddlePaddle/Paddle,yu239/Paddle,QiJune/Paddle,lispc/Paddle,chengduoZH/Paddle,putcn/Paddle,lcy-seso/Paddle,chengduoZH/Paddle,putcn/Paddle,pkuyym/Paddle,lispc/Paddle,reyoung/Paddle,yu239/Paddle,Canpio/Paddle,hedaoyuan/Paddle,lispc/Paddle,tensor-tang/Paddle,jacquesqiao/Paddle,hedaoyuan/Paddle,hedaoyuan/Paddle,chengduoZH/Paddle,pkuyym/Paddle,Canpio/Paddle,PaddlePaddle/Paddle,Canpio/Paddle,Canpio/Paddle,pkuyym/Paddle,pengli09/Paddle,lispc/Paddle,chengduoZH/Paddle,hedaoyuan/Paddle,PaddlePaddle/Paddle,QiJune/Paddle,yu239/Paddle,pengli09/Paddle,lispc/Paddle,Canpio/Paddle,jacquesqiao/Paddle,QiJune/Paddle,baidu/Paddle,putcn/Paddle,baidu/Paddle,tensor-tang/Paddle,chengduoZH/Paddle,lcy-seso/Paddle,jacquesqiao/Paddle,pengli09/Paddle,jacquesqiao/Paddle,baidu/Paddle,Canpio/Paddle,luotao1/Paddle,yu239/Paddle,hedaoyuan/Paddle,pengli09/Paddle,pengli09/Paddle,reyoung/Paddle,luotao1/Paddle,lcy-seso/Paddle