code: function createBot() {
    var bot = function(platform, context, event, next) {
      context.platform = platform;
      bot.handle(context, event, next);
    };
  
    mixin(bot, EventEmitter.prototype, false);
    mixin(bot, proto, false);
  
    bot.context = { __proto__: context, bot: bot };
    bot.event = { __proto__: event, bot: bot };
    bot.display_name = "bot"; // default, should be overwritten
    bot.init();
    return bot;
  }
docs: Creates a bot.
  
  @return {Function}
  @api public