As we moved most of the creation of a BufferPool to be via the
Streaming::pool() method, which uses a thread-local, it makes sense
to start cleaning up the design and make it more modern C++.
The above mentioned method would return a reference and you'd see
loads of places use `auto &pool =` which is less than ideal.
As the number of places where we actually instantiate a BufferPool
goes down, the usage of some sort of smart pointer makes more sense.
This now makes all APIs use BufferPool be wrapped in a shared_ptr.
setting an incorrect value should not keep the old data after we already
update the fValid boolean.
That would give the user the impression that the data was removed while
it really isn't.
The txVulcano wallet is currently really not fast,
so this code made the first mistake of network programming;
a big task was handled blocking the network handling.
The workerthread eventqueue is now used for this.
This is a partial app which has as goal to generate transactions
and fill up blocks. A needed tool to test bigger blocks.
Secondairy goal is to test the Hub APIs in actual production
setting.