prompt: Make zsh hook to precmd.

Previously used chpwd hook caused the escape sequence to be printed when
it shouldn't be printed. For example, when user wanted to list files in
a directory with "(cd dir; find) > list.txt", list.txt contained not
only the files but also the VTE escape sequence.

This patch changes the hook to precmd, which is invoked before
displaying prompt. This is the same "hook" that is used in bash.

https://bugzilla.gnome.org/show_bug.cgi?id=724982
build: Fix many compiler warnings