Display CQL values to the user as valid CQL expression source code
This might actually be implemented elsewhere but I consider it a generic issue across multiple components, so am putting it as an Engine issue for now.
Currently when evaluating expressions in the CQL Runner, the resulting value displayed for each "define" is a close approximation of, but is not identical to, valid CQL source code. Examples of differences include that strings are not quoted, date times don't have the commercial-at prefix, some lists are not comma-delimited, and so on.
The task of this ticket is make CQL expressions round-trip-able. What you see output in the CQL Runner and other places can be copy-pasted into the input box and be re-run with the same result, and it would parse as valid syntax. A bulk-ready variant is that the output takes the form of a library definition where each expression has the form of a "define" etc. Meta-data such as declared line numbers can appear beside it as a CQL comment, and so on.
Besides being a huge convenience feature, this would also help avoid a lot of interpretation bugs, such that literals which appear the same always are Equivalent()=true and those which appear different in that output are Equivalent()=false.
See also issue #39 which is a bug directly resulting from the imprecision of the output.
Note that one way this could specifically be made an Engine issue is if the generic fix takes the form of an Engine function that takes an arbitrary value object and results in a string value object which is the CQL source code that can generate the value. This function can then be used for various things such as value serialization or marshalling, and for user display, and for debugging, an example of the latter being what an IDE displays for a value object as its gist. Other projects like the ruler can then just call this function without implementing it themselves.