Implement first draft of hook providers for topics. refs #125 and refs #47

__This is incomplete__, but basically functional. Much to do yet but need to commit before being gone for a week. Sets up system much like PostCalendar and Tag where a subscriber module is able to set up their own metadata creator class to provide optional information to the hook (like title, content).