Abstracted away the help check for commands and menus into a new method called getHelpResponse();
Renamed MenuItem to Menu.
Moved common model properties into the new abstract classes Node and MenuItem;
MenuItem is used to more cleanly append a free-floating line to a menu item's summary;
Made constant properties final, and moved menu parent intialization into construct (with the root specifying null, as usual).
Added tab completion...

This is currently used only to check more cleanly whether an argument is special or not;
Added a new getAll() method that gets everything in the stream, essentially clearning it - used to more cleanly detect the command prompt string - in particular avoiding the cases where the login note might look like a prompt;
(That method is the cause of a slight performance degradation, but the stability improvement is well worth it)
Reordered parser methods in an almost "seen first appears first later on" order (except when it makes sense to leave it grouped).