Various moves, removes, and renames

- Rename README and TODO to include .md extension for better GitHub
  viewing
- Move GMShim.user.js from util/ to bin/
- Move all the utility scripts to util/
Remove unneeded variable in script loading function
Modified README.md to reflect file migrations
Add framework for dialogs
Add better dialog support and include test dialog
Change about dialog to use new dialogs

- Also fix dialog appearing before being opened
- Added new plugin format proposal
Move to another hook layout

- Change hooks to be layed out in a more plugin-like manner instead of
  the old single-hook-each layout
- Move the /who command over to the new layout
Add some TODOs to menu.js
Change select text option to download chat
General fixes/cleanup

- Add some documentation to PluginManager
- Remove unused console logging
Add documentation and do more cleanup

- Rename _selectChannelElem() to _makeChannelActive() to be more
  accurate in naming
- Added function description comments for many of the internal functions
- Replaced a use of alert() with console.error() when dealing with an
  invalid result from the server
Add ability to enable/disable plugins (internal)
Add better plugin enable/disable support
Add dialog open/close transitions
More asthetic changes for the dialogs

- Removed rounded edges on bottom
- Position in center when opening first time
- Put dialogs on top when opening and when selected
Add UI for enabling/disabling plugins
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
Bump version number (1.7.1 -> 1.8)