This makes a start at implementing part 3 of the OverloadedRecordFields
trilogy (see https://ghc.haskell.org/trac/ghc/wiki/Records/OverloadedRecordFields/MagicClasses).
Only HasField has been done so far; updates need a bit more thought about
the design. Moreover, I've gone for the functional dependency version
as it seems simplest.
Rather than adding another special-purpose constructor to EvTerm, I made
it possible to embed arbitrary HsExprs in evidence. This should be useful
for typechecker plugins. But I can specialise it if needed.