* Implement the /backfill federation endpoint
* Make the BFS loop block common between QueryMissingEvents and QueryPreviousEvents
* Improve comments on the BFS loop block
* Optimisation: prevent unnecessary redefinitions/reallocations
* Add trailing slash at the end of the route for parity with synapse
* Replace QueryPreviousEvents with QueryBackfill
* Change the backfill response to comply with the specs and synapse's behaviour