fix(frontends/lean/structure_cmd): modify coercion generation

The previous coercion was more efficient, but the computation was
getting stuck when processing algebraic structures
feat(frontends/lean/structure_cmd): allow structure declarations that contains only a header
feat(frontends/lean/structure_cmd): use 'mk' as constructor name when it is not provided
feat(frontends/lean/structure_cmd): allow fields to be suppresed, but constructor to be provided
feat(frontends/lean/structure_cmd): remove 'cases_on' for structures since it may confuse users, add 'destruct' as alternative name for 'rec_on'
feat(frontends/lean/structure_cmd): add 'private' modifier for parent structures

When it is used coercions/instances to parent structure are to registered