C++ Safety and Conformance

Per the recommendations in #606 and #607:

- Header guards have been de-underscored.
- Removed an unnecessary check for NULL before deletion.