use raw message id for creating Message object

this leads to a natural deduplication when indexing messages, because now replaying logs in case of a crash won't lead to duplicate messages
however we will still index them and in case the message does not contain a timestamp its timestamp will be updated.

the message object should probably not create timestamps itself anymore, instead it should fall back to whatever the raw message contains