(CFACT-70) maintenance - refactor usage of kstat to a wrapper

kstat APIs are used by solaris and other systems like free bsd to fetch kernel statistics. This patch refactors the kstat invocations into a simpler wrapper that handles both errors and data retrieval.
I'd prefer not to use exceptions for control flow, if possible; especially if we're looking some unknown number of times and we have to handle an exception each time.  Is there a way we can refactor `operator[]`, perhaps into another member, that can signal that the entry isn't present without throwing?