#1013 Report writer class

Added ReportWriter class.

Whenever a bot receives new data, ReportWriter will attempt to process them if not busy.

When processing, it goes through each bot, one at a time, interspersing each bot processing in the node.js queue. For each bot, it writes each report to the database, one at a time, interspersing each DB write in the node.js queue.

The end result is that DB writes are run asynchronously, but the next write is not queued until after the current one has finished, thus allowing node.js to process any other callback in its queue in the meantime.

This process will continue until all bots at the start of the processing are dealt with, after which ReportWriter will mark itself as available and wait for new data to arrive.