* 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.
* Convert `op` --> `operators`
* Remove AddType in OpProtoMaker, because type is part of registry.
* Rename CPU_OR_GPU --> DEVICE_TYPE in registry macro.
* User can register OpKernel to its Ops. The OpKernelMap saved in
OperatorWithKernel. Each Op which inherits OperatorWithKernel will
use `OpKernel::Compute` instead of Run.
Add OperatorBase.
issue: https://github.com/PaddlePaddle/Paddle/issues/2790
Paddle design the Operator with Kernel. OperatorBase has no type and device information when create, One operator can have multiple kernels, Operator will choose a kernel to run according to context. The kernel should be bind to Operator before or during Operator running.