Exception handling and smart pointer (automatic cleanup) libraries for C