quo_squash() flattens all nested quosures within an expression.
For example it transforms ^foo(^bar(), ^baz) to the bare
expression foo(bar(), baz).
This operation is safe if the squashed quosure is used for
labelling or printing (see as_label(), but note that as_label()
squashes quosures automatically). However if the squashed quosure
is evaluated, all expressions of the flattened quosures are
resolved in a single environment. This is a source of bugs so it is
good practice to set warn to TRUE to let the user know about
the lossy squashing.