Please review: Internal use of UA_StatusCode

Essentially, we use UA_StatusCode instead of UA_Int32 for internal return values.
So we can use the predefined codes and do not have to make up new status.
The goal is to use precise errors and not always UA_ERROR.

Second change:
Functions assume input pointers are not null. This removes a bazillion of unnecessary checks.
Exceptions are documented for the specific function.
The current state is valgrind-tested to death. So should be good.