use dash.el versions of *-let macros
use defun* instead of cl-defun for readability
more liberal autoload extraction:
* Can autoload macros
* Displays autoload option even if autoload exists
* Aborts and informs user if autoload already exists.