Named Listeners

As the first part of enabling #768, we need a way to label each Listener with a scoped name. By itself, this first PR is fairly useless (no way to access the ID), but I want to work on this in bite-sized chunks.

I've updated the documentation to show that you can (and should) specify an ID for all Listeners. Once this gets merged and the RBAC module is created, I'll do a pass over hubot-scripts and file a bunch of PRs for adding Listener IDs and default Permissions.
If we are updating this code, it might be worth validating `@matcher` and `@options` are defined. 

I seem to recall times forgetting a callback, and it's a pretty awful stack trace. Same applies to options.