Add better bulletproofing

Under certain circumstances, it was possible to cause Hermann to evaluate a null pointer leading to a segfault.  Added better NPE handling to avoid trying to init or free already cleaned up values.

JIRA: PART-3886