feat(kernel/replace_visitor): relax replace_visitor contract, the input expression can be null

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(frontends/lean/frontend_elaborator): must elaborate type attached to placeholder, it may also contain holes

The test tactic14.lean exposes the problem.

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
fix(frontends/lean/frontend_elaborator): must elaborate type attached to placeholder, it may also contain holes