Don't set auto_name_dirs because it messes up prompts

From http://zsh.sourceforge.net/Doc/Release/Options.html#Completion-4

> AUTO_NAME_DIRS
> Any parameter that is set to the absolute name of a directory immediately
> becomes a name for that directory, that will be used by the ‘%~’ and
> related prompt sequences, and will be available when completion is performed
> on a word starting with ‘~’.
> (Otherwise, the parameter must be used in the form ‘~param’ first.)

Explained in more detail in
https://github.com/wayneeseguin/rvm/issues/3091#issuecomment-60083194

Related issues:
https://github.com/robbyrussell/oh-my-zsh/issues/2857
https://github.com/robbyrussell/oh-my-zsh/issues/3238
https://github.com/wayneeseguin/rvm/issues/3091
Merge pull request #3252 from mcornella/fix-auto-named-dirs-prompt

Don't set auto_name_dirs because it messes up prompts
Refactor similar functions into common sections
Fix take function

Before the modification, the `take` function will try to cd
into the created directory even if mkdir throws an error.

With this modification, if mkdir fails to create the directory,
cd won't run and the take function will return the mkdir exit
code.