`fieldAnnQ` fails to compile empty annotations

Description

fieldAnnQ (and related quasiquoters) fail to compile with empty strings.

Steps to reproduce

fa :: FieldAnn
fa = [fieldAnnQ||]

Expected behaviour

Expected the code above to compile

Actual behaviour

• Couldn't match expected type ‘Text’ with actual type ‘[a0]’
• In the first argument of ‘UnsafeAnnotation’, namely ‘[]’
  In the expression: (UnsafeAnnotation [] :: FieldAnn)
  In an equation for ‘fa’: fa = (UnsafeAnnotation [] :: FieldAnn)

I suspect this is because we use StringL to splice in a string literal. E.g., [fieldAnnQ|aa|] is compiled to `UnsafeAnnotation "aa".

However, when the string is empty, StringL splices in []. [] is a valid string, BUT it is not a string literal, so it can be overloaded to Text (which is what UnsafeAnnotation expects).

This can be simply solved by not relying on OverloadedStrings. We should generate UnsafeAnnotation (fromString <string>) instead.

Environment