<< overload for subcategory uses a public methods. It need not be a friend function.
<< overload for menu & menu_entry don't need to be friend functions. They use public methods as well.
Restructure classes to avoid forward declarations for overloaded <<