renamed the cpp header file to `*.hpp`

If we eventually have a `extern "C"` check for all `*.h` files (#1789) we need to explicitly have distinct names for c++ headers to avoid false positives.