Basic functional dependency implementation. Most notable change to be
aware of is that the datatype `Inst' now has a new constructor `FunDep'
used to track functional dependencies. The FunDep predicates are filtered
out in tcSimplify* so that they don't escape.