[LockedUnboundedQueue] use a upgradable r/w boost::shared_mutex instead of std::mutex
Propagate dependecies better in our meson files. To link boost with everything including LockedUnboundedQueue.hpp we propagate emper_dependencies through emper_dep. And using emper_dep as a dependency seems anyway better than essentially writing down emper_dep manually each time (link_with:emper / include_directories: emper_all_include)