Use terminfo key codes instead of hardcoded ones for key bindings

Hardcoded key escape sequences (such as `[[A` for arrow-up) serve their purpose in most cases, but not in any terminal configuration. It's a better practice to query the right codes dynamically from `$terminfo` instead.

I expect this to become a real-world problem as soon as recent Debian and Ubuntu versions become used more widely: Those ship with a `/etc/zsh/zshrc` which enables "application mode", in which oh-my-zsh's key bindings partially don't work. I've written down more about that problem [on my blog](http://www.f30.me/2012/10/oh-my-zsh-key-bindings-on-ubuntu-12-10/).

My commits migrate the key bindings to terminfo wherever possible. Please note that in order to use `$terminfo`, my code hast to activate the "application mode" as well and might therefore break custom hardcoded key bindings. I based my work on the documentation efforts by @kylewest from pull request #889.