Change the xCalFormat classes to use a hierarchical dptr
Saves one allocation, and allows the removal of the virtual_hook() from the outside interface as this can now be done via the private class (as this class hierarchy isn't intended for external extension).