Detect and fail on invalid multiple instantiation

Using peerDependencies should prevent this situation, but we should fail
hard and early on invalid usage.

/to @Schoonology @bajtos I applied essentially the same patch to all three cluster-using modules. I suspect that means it should be factored out into its own mini-module, but I'm out of time for now, and its not clear what that module would look like.