This removes std::iostream from the inheritance chain, which reduces overhead slightly.
Allows calling code to move the std::string into the Watch instances, avoiding copies.
Move Watches to Common