Switches to vector of pairs for holding menu entries

Use vector of pairs instead of maps as it gives a predictable order while iterating.
This avoids the need of having two containers one for information and another for order.

Rename group to qualified menu entry to express intent better.

classify() doesn't handle unclassified items.
It returns a boolean that indicated if found a category for the entry.
Removes unused variable