Use operator new() instead of new

The former guarantees alignment for arbitrary types, while the latter
does not
Hide implementation details in CPPTypeNameChecker