This covers most of the module's functionality, with special
emphasis on lines that use underscore.js (_.each and _.filter).
(imported from commit 074181a0273286a258504be634bdd1cead2eecd5)
The width setting was unintentional, and it interferes with
the inline-block settings for the image and bot info.
(imported from commit 741c82829efed00b6d47badcf14b26223b47a7a9)