Fix for packaging

- add autoload cookie for lazy loading
- use cl-lib instead of cl.el

`eval-when-compile` should not be used if package uses cl function
(for example, position in this package).