Fix 1: missing update IdentSet -> Ident.Set in bytegen
Fix 1: remove function label (can be retrieved by a function instead)
Fix 1: add missing functions to create abstract types
Fix 1: function_label removed: update Printflambda
Fix 1: remove arity from function record, it is duplicated and sufficiently fast to recompute
Fix 1: remove not informative comment
Fix 1: explicit what functions free_variables really means, fix the checks
Fix 1: abstract compilation unit type in Ext_types.UnitId
Fix 1: better printing of closures
Fix 1: revert IdentSet -> Ident.Set

This avoids dependency on Ext_types where it is not needed.
3 - generate flambda from lambda
Fix lazy and exceptions allocated as immutable blocks

For exception that means that structuraly equal exceptions can't be shared
Add -dflambda ocamlopt option