define base keymaps when variables are defined

Instead of re-doing it every time `ido-completing-read' is used.

This will be merged into Emacs once its trunk re-opens.

See http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17000

TODO changelog entry, cosmetics