Comm-related API updates:
1. Refactored base Comm API to protocol
2. Added CommManager class to better abstract API (including
   linking/unlinking)
3. Removed unnecessary methods from CommRegistrar
4. Refactored link/unlink in CommRegistrar
5. Removed alias for CommStorage
6. Added CommStorage class with target/link API
7. Added ClientCommManager
8. Added KernelCommManager
9. Updated Kernel handlers for Comm-related messages
10. Updated IOPubClient to use new methods in CommStorage