This commit introduces the foundational CValue type system, enabling
unified handling and representation of various Go data types.
Key features and components:
- **`CValue` struct**: Core data structure for holding any Go value.
- **`CValueType` and `CValueState`**: Enums for type identification and value state.
- **`cValueCreator` interface**: Defines the contract for creating `CValue` instances.
- **`creatorCValueFnc[T]`**: Generic function type implementing `cValueCreator`,
responsible for converting specific Go types (`T`) to `CValue`.
- **`makePointerCreator`, `makeListCreator`, `makeFuncCreator`**: Generic helper
functions for creating specialized `cValueCreator`s for pointers (`*T`),
slices (`[]T`), and provider functions (`func() T`), respectively.
- **`cValueTypeInfo`**: Struct for metadata and associated `cValueCreator`s for each `CValueType`.
- **`createCValueTypeInfo[T]`**: Generic factory function to initialize `cValueTypeInfo` entries,
including support for custom `cValueCreator` overrides.
- **Initial set of `CreateCValue` functions**: Basic implementations for primitive types
(int, string, bool, etc.) and specific types like `[]byte`.
- **Centralized type registration**: `newCValueTypeInfoMap` for organizing all
`cValueTypeInfo` definitions.
This foundational layer is designed for extensibility, allowing easy
addition of new `CValueType`s and custom handling logic.