fix uint64 encoding. and several improvements

[Improvements]
* improve float value handling. remove trailing zeros
* check max value compatibility with c++ protobuf. still manually.

[Fixes]
* fix incorrect uint64 encoding (atoll returns int64 value). also add missing test case.