Create the `OptHint' type.

The `OptHint' data type covers the set of annotations added by the
optimizer to the K3 AST, influencing the code generation process, as
well as subsequent analysis passes.
Add helper accessors for effects.
Add `Ord` instances for all effect types.
Ensure that `Binder` is exported from Expression Constructors.
Add optimization hints to expression annotations.
Add initial pass of bind optimization.

The current version populates the bind hint for read-only identifiers
inside the bind.
Set up optimization pass infrastructure.
Use bind-opt to handle reference binds for indirections.
Add new effect/optimization modules to cabal file.