Prevent add-to-load-path from adding duplicate entries

* module/ice-9/boot-9.scm (add-to-load-path): Remove argument from
  %load-path (if it exists) before pushing. This also means that the
  `elt' will always be at the front of %load-path.
Provide curried version of define*-public.

* module/ice-9/curried-definitions.scm (define*-public): New macro.