Federation retries

Keep track of whether federation replications are online or offline, and if they're offline, how long we should wait before trying to contact them again.  Doesn't actually implement transactional retries, as when the remote HS comes back online it will hopefully check in with us and pull itself up-to-date.  Admittedly this will currently wait for the origin HS to send something before it notices the remote HS is back and alive.