Added locks around access to callback list
Added a subscription host module
Changed subscription service interface

A subscription service can now have more than one subscribable ID.
Added a method for adding subscription services
Added an interface for subscriable objects that have 1 ID
Added a method for adding a subscribable instance
Added Remove() methods
Added Unsubscribe() method
Implemented GetAvailableSubscriptions()