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'm wondering if it'd make sense to leave this as `undefined`. That way, coffee scripts using it can check `listener.id?` and have it work as expected, rather than checking if it's 'unknown'