update copyright
compile with -Wextra
examples: add missing return
examples: remove unused arguments to main()
user functions: don't use stack addresses

libedit does not strdup the strings passed to EL_ADDFN so
we can't just pass the string pointers from the arguments
as they may be temporaries. Keep a copy of those strings
an pass their addresses.