[RFC] Use bool in normal.h and .c.

normal.h and .c seems to use an inordinate number of `int`s that can only ever be `TRUE` or `FALSE`. This can be proven by inspecting the output of `grep -r "\\<varname \\="` and observing that each assignment sets `varname` to `TRUE` or `FALSE`. To make matter worse, some of them are involved in non-boolean operations (like `oparg_T`'s `inclusive`--see the first commit) which might make one assume they could have a value other than zero or one. 

I also lightly touched a few other files (kmap.c, ops.c, search.c, and ui.c) to ensure that functions expecting an `int*` do not emit a warning about casting from a `bool*` to an `int*`, and the boolean variables from normal.h are used as `bool`s and not `int`s.

`./clint.py src/nvim/normal.c 2>&1 | grep bool` now shows warnings only for lines 126-300 where `cmd_arg` of `nv_cmds` may have the values `TRUE` or `FALSE`, but also `BACKWARD`, `FORWARD`. `SEARCH_REV`, and many more. Changing these instances of `TRUE/FALSE` to `true/false` seems inconsistent since the other possible values are integer CONSTANTS, too. Should these be left as-is, changed anyway, or something else?

I mostly left the `FAIL`/`OK` idiom alone because of `NOTDONE` It only has a handful of uses in the whole program so I think it could be changed to `bool` and `true`/`false` without any problems, but I'm not sure.

On an unrelated note, I discovered that `cmdarg_T`s `prechar` only has one reference, in normal.h, and removing it does not cause any warnings or errors. But I left it untouched for now since that's not related to using `bool`.