Fix code to avoid GC during init

Now it only executes during init (not if re-evaluating the init file
after init) and properly restores the variable to its original value
after init.
Add some safe local variables
Add some pacakges
Highlight more elisp functions

...using highlight-defined mode, and also enable highligh-cl in ielm.