Refactor hs_service_callback() to no longer need to run once per second?

This is maybe a lot of work, but it would help if we could make all the once-a-second portions of this function into things that we can turn off if we're dormant? I'm hoping for a feature (optional?) where a dormant onion service does the minimum work possible to keep itself online and wait for introductions.

This is a reach task; if we do the rest of the parent ticket, we'll be fine.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information