msgQueue service

Implemented a shared msgQueue service on top of an abstract Queue
class. This enables messages to be submitted to the butter box without
conflicts. Messages are displayed for a minimum of 1500ms or until
their timer expires and a maximum of until a new message arrives.

TODO: trigger getFolder on the online event. Consider queueing it in
the case of offline an then triggering the queue on online. This
function will probably need to unshift the function to the top of the
queue if it fails so the other dependent functions can succeed. Or
flush and restart.