considering setting default value is common that min/max value, move default value template argument ahead of min/max template argument, because C++ can not skip template argument like Rust `_` does.
- rename serialize namespace to serdes. - fix some compile issue. - add test for carton binstore
- basically finish clap test (except variable part) - fix some clap issue (still have some bugs)