Refactor how dispatching is performed

* Simplify Dispatchable, rely on Config.server
* Allow ChatHistory to store any coercible object
* Plugin gets #match? to fix demeter violation
* Update tests and guard them against real storage and servers