bug fixes after changing keyIndex to keyName

After changing `keyIndex` to `keyName` some parts of code of `addJSONData` and `normalizeData` need be fixed. The value of `idn` variable will have the same type as `keyName`. So it will be the **name** of the column in case of usage `key: true` property for some column of `colModel`. Other possible values of `idn` could come from `dReader.id` and be also name, dot separated names or dot separated numbers, number, number as string or a function.

The suggested code first set `idi` variable to the index of id column and one uses later `idi` instead of `idn` if `repeatitems` is `true` or if the row data `cur` is an array. Some additional small code improvements are included too.

More details about the problem one can see [here](http://www.trirand.com/blog/?page_id=393/bugs/strange-behaviour-after-updating-to-jqgrid-4-7-0).