Adjust tests for new Template Haskell.

From the new Template Haskell proposal at
http://hackage.haskell.org/trac/ghc/blog/Template%20Haskell%20Proposal

  A declaration group is the chunk of declarations created by a top-level
  declaration splice, plus those following it, down to but not including the
  next top-level declaration splice. Then the type environment seen by reify
  includes all the declaration up to the end of the immediately preceding
  declaration block, but no more.

This change adds '$(return [])' where necessary to allow following declarations
to see (module-local) top-level definitions.
Fix test wibbles for new Template Haskell.

Because splices are now run in the renamer, we do not get the same error context
as we would when running in the type checker. In most cases we get less context,
and in some cases I have added additional context. Error messages should at
least tell the user that an error occurred in a splice; dropping context beyond
that point is not judged a great loss.

Note that we may now report only one error when multiple errors were reported
before because splices are now run in the renamer.
Update tests now that declaration splices are legal everywhere.
Update test to reflect fix for #1201.

Splices are now run in the renamer instead of the type checker, so they
only get run once.
Fix test wibble.
Peculiarly, we now pass this test on ghci.
Merge New Template Haskell branch.