VIM-288 Map commands

It's the IdeaVim maintainer's pull request for tracking the development status of [VIM-288](http://youtrack.jetbrains.com/issue/VIM-288).

Current TODO list for key mapping:

* [x] Handle IntelliJ shortcuts without the special `"Vim"` keymap (available in builds ≥ 201)
* [x] `:map {lhs} {rhs}` key mapping commands
* [x] Basic recursive key mapping support
* [x] Key mapping timeouts
* [x] Use `timeoutlen` option for setting timeouts
* [x] Basic Vim `<>` notation for keys
* [x] Read key mapping commands from .vimrc
* [x] No-argument `:map` commands for showing key mappings
* [x] Non-recursive `:noremap` commands
* [x] Detect key conflicts between the IDE and Vim key mappings
* [x] Support `:source` command used in .vimrc for splitting key mappings into several files
* [x] More `<>` notation keys
* [x] `<nop>` mappings
* [x] Ignore special mapping arguments
* [x] Support for mapping keys to Ex commands

Not supported:

* `:xmap`, `:smap`, `:map!`, `:lmap` commands
* Special arguments: `<silent>`, `<buffer>`, `<nowait>`, `<special>`, `<unique>`, `<expr>`, `<script>`
* `:unmap` commands
* `:mapclear` commands
* Some `<>` notation keys