Fix pointer truncation during process iteration

In similar vein to the migration issue, incognito was crashing when
running under SYSTEM processes (such as lsass.exe). This was because
of a pointer truncation problem when processes were being enumerated.

There was also some other quirky logic going on, but nothing too
damaging. I added some other simple code tidies while I was in there.
Remove unused param, force 'treat warnings as error'

For some reason this project setting wasn't present in incognito.
Fix command impersonation

In a previous commit, I rejigged the way commands were overloaded,
and added what appeared to be a micro-optimisation to prevent
the thread from being imperonsated twice. Ultimately it wouldn't
make any differnce, so why I put it in there I really don't know.

The optimisation actually resulted in a breakage in the case where
base commands weren't present but extension commands were. As a
result all extended commands didn't get impersonated unless they
were overloading. This is not a good thing at all.

This fix removed that total stupidity and restores some level of
sanity.

Apologies for my idiocy.
Land #67, command impersonation fix
Merge branch 'upstream/master' into incognito_pointer_truncation_fix
Land #66, fix incognito ptr truncation
Merge branch 'upstream/master' into ext_server_kiwi