Add batch_id-with-timestamp indexes to message store

```
>>> print [chr(v) for v in (ord(':') - 1, ord(':'), ord(':') + 1)]
['9', ':', ';']
>>> print [chr(v) for v in (ord('$') - 1, ord('$'), ord('$') + 1)]
['#', '$', '%']
```
I vaguely prefer the latter for the range query, because `9` looks like part of the batch_id. I don't really mind what we use, though.