Support interpolated strings

This supports double quoted strings with interpolations. The entire
expression results in a String. Since all values can be converted to
strings, there is no constraint placed on the TextExpressions that
interpolate, but they still need to be inferred.
Support parenthesized expressions

The type of an expression in parens is the type of the contained
expression.
Support not expressions