All OpCreation method are generated by
`create_op_creation_methods::__bootstrap__` method, and stores in
`op_creations` object and its methods.
There are three parts to implement this feature.
1. Get all registered `OpProto` from C++ side. It is implemented in
`get_all_op_protos` method.
1. Create a function to convert `kwargs` to `OpDesc` base on each op's
`OpProto`. The `OpDescCreationMethod` class.
1. Convert `OpProto` to `docstring` by `get_docstring_from_op_proto`
method.
All three methods are unit tested. The `__bootstrap__` just combines
them together and create a method in runtime.
For details, please reference the doc string in
`create_op_creation_methods.py` and the unit test
`test_op_creation_methods.py`.
* PyBind and SWIG of paddle cannot be load in a single Python process,
lazy import all SWIG library of Paddle. Otherwise, the glog, gflags
are imported twice in a same Python process.
* Note that all PyBind11 return C++ std::string as an unicode. For
protobuf, it is need be cast to `str` before use them.
* Add unit test for Get `OpProtos`