TAJO-269: Protocol buffer De/Serialization for LogicalNode.

It is a very long time work. This patch completely replaces json (de)serialization of logical plan by protocol buffer. This is the first patch. I'll do some cleanup and add more comments.
That's good idea. Actually, I have a plan to use protobuf-based serialized plans in C++ implementation. Some enum constant name is not available in C++. Please see this protobuf issue (https://code.google.com/p/protobuf/issues/detail?id=515). I think that it would be good to keep the separation for a while.

So, in this time, it would be good to separate them. Later, we can use single enum type.