[RDY/RFC] Use lua generator in place of ex_cmds_defs header trick

This only removes header trick. Compared to #788 I did not add missing include and did not remove dependency on `ex_cmds_defs` in `vim.h`. `transform_ex_cmds_defs.pl` script works also for Vim `ex_cmds.h` file, must be removed in case we add any additional information to `ex_cmds.lua` or start adding our own commands.

Ref #379, #549, #788
On July 21, 2014 4:08:58 AM GMT+03:00, "Justin M. Keyes" <notifications@github.com> wrote:
>> +local first = true
>> +local prevfirstchar = nil
>> +
>> +local byte_a = string.byte('a')
>> +local byte_z = string.byte('z')
>> +
>> +local cmdidxs = string.format([[
>> +static const cmdidx_T cmdidxs[%u] = {
>> +]], byte_z - byte_a + 2)
>> +
>> +enumfile:write([[
>> +typedef enum CMD_index {
>> +]])
>> +defsfile:write(string.format([[
>> +static CommandDefinition cmdnames[%u] = {
>> +]], #defs))
>
>`#` operator might be a bit risky:
>http://stackoverflow.com/a/2705804/152142 post advises "only sane way
>to use it is with arrays of one contiguous part without nil values".
>
>
>
>---
>Reply to this email directly or view it on GitHub:
>https://github.com/neovim/neovim/pull/840/files#r15152911

AFAIR I do not have non-integer keys or nil values. It will only be risky if we have enough commands to experience precision loss. If you see a place where this is not true please point it.