Sort function can do recursive sorting and is menuseparator aware, sorting
within blocks defined by menuseparators.
Note: If a menu item has forceFirst set as an attribute it will be put in
front of the current sort group. So far this is only used to keep the
operator change menu item at the top of the admin menu.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Jason Etheridge <jason@esilibrary.com>