[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)
19 jobs for boost_shared_mutex in 26 minutes and 24 seconds (queued for 2 seconds)