Use cl-lib instead of cl.el

There are both `cl-lib` a function(`cl-mapcan`) and `cl.el` a function(`gensym`), macros(`loop`)
in original code. And you should not use `eval-when-compile` because this code uses
`cl-lib` function(`gensym`).