Adds an object, ComplexAssignExpression, which can generate randomly structured, complex assign forms and report information about them. It also contains a method that allows it, given randomness, to produce valid defining expressions for each binding.
Adds a simple method for compiling and running cl23 code and returns useful information about it such as the CompilerOpts used to compile it and the result of compilation. This will be used later for a property test rig that depends on other fuzz infrastructure.