Move menu generation functionality into Menu Class and update CSS

This builds and completes work originally by daryn

Functionality has been tested with plugins implementing the following hooks:

EVENT_MENU_MAIN_FRONT
EVENT_MENU_MAIN
EVENT_MENU_MANAGE
EVENT_MENU_MANAGE_CONFIG
EVENT_MENU_ACCOUNT
EVENT_MENU_SUMMARY
EVENT_SUBMENU_SUMMARY

CSS changes have been tested on:

IE8
IE9
IE10
IE11
Firefox 31.0
Firefox 32.0
Chrome 37.0
Safari 7.0.6
See previous comment