Modify sendChat() to allow bypassing input

A custom message can be added as an argument to sendChat() and it will
use that instead of the value of the input line. This commit also
exposes sendChat() to plugins via the this context sendMessage() method.
Add joinChat hook to actual chat joining and init
Add auto /pop plugin