fix unittest failure
implement json format for protobuf (like text format)
port md5 from google's project