Add support for rendering messages prepended to the message collection
Add support for rendering messages prepended to the message collection

Both when models are appended or prepended the collection emits the
"add" event for the model and describes the specific action through the
"options" array. The only way to know that an item is prepended is
through the "at === 0" property, but when several models are prepended
at once only the first one has it. Due to this it is not possible to
prepend several models to the collection at once; they must be prepended
one by one for the messages to be properly rendered.

Although the models need to be prepended one by one to the collection,
note that it is possible to prepend several messages to the chat view at
once by triggering "add:start and "add:end" before and after all the
messages are prepeded one by one.

The appearance of each message depends on its context, so when messages
are prepended it is necessary to keep track of the last prepended
element (even if it was in a different batch) to update its CSS classes
as needed to group them with the newly prepended message, or to swap
the date header with it.

Signed-off-by: Daniel Calviño Sánchez <bd7629e975cc0e00ea7cda4ab6a120f2ee42ac1b@gmail.com>

nextcloud/spreed,nextcloud/spreed,nextcloud/spreed