Add the KEY_END marker on key creation where missing

Add the KEY_END vararg where missing when creating a new key, either
using the C keyNew or the C++ kdb::Key, as done everywhere else.

This fixes crashes in some tests.
Your explanation already gets to the point why it is really wrong! -> It has undefined behaviour.

keyNew(0) does not have undefined behaviour because neither va_start nor va_args is called. The question for me is if, like you suggest in this pull request for the file testcpp_key.cpp, passing parameters that are not accessed is a problem. Because basically you are right it is better if every call of keyNew() is terminated the same way.

So to be sure that there is no misunderstanding, there are two situations:
1.) keyNew("", ) that *must* be terminated with KEY_END
2.) keyNew(0) that may (?) be terminated with KEY_END

For the first situation you are right and it must be fixed. So we are only discussing the second variant.