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.
My intention was that you never need to wonder if the listener ID has been set, you just use whatever the value is. This results in a narrower interface (field is always a String value). Given that IDs are not guaranteed unique (just "should be"), 'unknown' can be safely assigned to many different listeners. I can switch to `null` if you feel strongly about this though.