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.
I've been going back and forth on this. `id` is probably going to be special, but for other attributes, they aren't going to be guaranteed to be around. So, given that, I think we want to encourage middleware developers to err on the side of safety, and always check for the metadata they need. They can add a default behavior for undefined keys if they want to.