Add metadata field to TextMessage

Hubot does not really support any kind of metadata for messages, and even the room support is hacky, since the value is stored in the author (which is actually an instance of user that is stored in the brain). Flowdock adapter also needs to be able to pass other data along with the message, like threading information. Adding all this to the author feels like it's just the wrong place.

I'd like to add a `metadata` field to `TextMessage` so that modifying author could be deprecated and room/thread etc info could be passed in that object. I could do that for just flowdock-adapter, but I'd like the pattern to be officially supported so that other script authors could use that. I created an issue for hubot-flowdock too https://github.com/flowdock/hubot-flowdock/issues/52 and this is a requirement for that to be solved properly.

Any thoughts?
Shouldn't this be `@envelope.room or @user.room`?