[core] Add bot.notice() and a notice parameter to bot.reply()

This allows modules to repond with NOTICE to certain commands.
bot.reply() accept a boolean parameter named notice, if it is set to true
the reply will be sent as a NOTICE to the originating channel instead of a
PRIVMSG.

This fixes issue #339