[SON-HIVE Voting] Refactor sidechain plugin to use separate son schedulers per sidechain

The goal is to separate voting for Bitcoin and Hive SONs, so that they can act independently of each others. All code affected by this change should be refactored, in a way that enables that Bitcoin SON and Hive SON are considered separate entities.

The function of interest is

void peerplays_sidechain_plugin_impl::son_processing()

Since we will be using separate schedulers, processing BTC/Hive/HBD might happen in parallel, not like now, in serial manner.

Simplified, we can start separate "per sidechain" processing threads from here

void peerplays_sidechain_plugin_impl::schedule_son_processing() {
   fc::time_point now = fc::time_point::now();
   int64_t time_to_next_son_processing = 500000;

   fc::time_point next_wakeup(now + fc::microseconds(time_to_next_son_processing));

   _son_processing_task = fc::schedule([this] {
      son_processing();
   },
                                       next_wakeup, "SON Processing");
}
Edited by Henry Belakon