push last position onto mark ring so we can return later
eval-after-load is not necessary since it has been explicitly required
use defcustom for user option