Making Intercom thread safe

Removed the instance variables on modules, that would be shared between different threads, by the `Thread.current` hash.

Currently on driftrock.com our use case requires us to switch intercom credentials on each request, this changes will make it possible for apps using thread servers (e.g. puma) to safely switch their intercom credentials.

A best approach in my opinion would instead of a module, `Intercom` be a proper class and get instantiated (it's already a module with state anyway), but that would be a breaking change.