Currently, the code is using bytes_opt and bytes_view_opt to represent CQL values, which can hold a value or null. In preparation for supporting a third state, unset value introduced in CQL v4, introduce new raw_value and raw_value_view types and use them instead. The new types are based on boost::variant<> and are capable of holding null, unset values, and blobs that represent a value.