Emit a decent error message when there is a decl-splice inside a decl-bracket
This fixes Trac #1065. The fix is just to emit a decent error message
rather than crash. The situation is this:
f x = ... [d| $(..stuff..);
f x = v :: T |] ...
TH wants to rename and typecheck the bracket; but it can't run the
nested splice yet. That seems hard, because we know nothing about v, T,
which are, presumably bound by the splice.
The original TH paper says this isn't allowed, and now it's checked for
properly (in the parser, in fact) rather than causing a crash. In the
fullness of time we might want to do something more flexible, but not now.