Continued Resource::Manger cleanup (JIRA RIPD-372)

 - Incorporates review comments from previous commit.
 - Increases Resource::Manager unit test coverage: verify a dropped consumer is blocked for a while.

This seems sketchy. `n` is not initialized for this `while` loop and its initial value will be 0, meaning it will start from `std::size_t(-1)`. Is that *really* the intent?