a format can specify a minimum size requirement per serialized value (useful as estimation for buffer allocation)
format can specify a maximum size (or size_t::max if unknown)
todo: 64-bit size type
move min and maxSize to header for format utilities
todo: shorter structure syntax
POD format is a template
min/maxSize for POD format
Bool, Bytes and UniquePtr have min and maxSize
add default_type for a recommended C++ value type to several formats