hs: Cache current time period number and SRV start time

For each node in the consensus, we call node_set_hsdir_index() which gets the time period and srv start time to learn if we are in between TP and SRV or not.

These calls ultimately call get_voting_schedule() which allocates memory and prints a debug log everytime.

All of this is actually pretty heavy and they are values we can cache because they are all based on the timings of a new consensus (valid_after, valid_until, fresh_until).

It is also called every second by a tor with a hidden service.

Caching those and updating when we get a new consensus seems a light refactoring for a good performance improvement.