Adding support for dynamic messaging

By allowing the message, from, and color options to be functions (as an alternative to strings), the functions are executed just before sendRoomMessage is executed. Allows the messages to dynamically change based of Grunt/repo state.

As an example, I use grunt to publish pakacges to an internal NPM repository and we can now send HipChat messages that contain the repo name, package name, git user.email (whodunnit), package version, commit, etc, along with links (to GitHub, CI build, etc) into our Deploy HipChat Room for the whole team to see! It's awesome :)