Pdecl: split type declarations in chunks
Refinement code requires private types to reside in separate program declarations. So we split type decls into chunks where all non-free types are declared separately and only constructible (Ddata) types are kept together. The code preserves the original order wherever possible. Also, export ls_of_rs and fd_of_rs from Expr: these are used everywhere in src/mlw anyway. Also, remove some range/float-related "assert false".