Optimized Menu Plugin
* Cleanup event code to allow for better modularity
* Cached $(document) object as per best practices
* Leveraged JS assignment deconstruction to reduce code bloat
* Cached parts of menu structure in container node to reduce $() dom calls

Additionally added new expression
* ':discoverable' - extends the ':focusable' expression to include tabable elements that are hidden. Currently the ":tabable" and ":focusable" require elements to be visible. Since keyboard navigation of the menu plugin may at times include elements that are in tranistion to being visible "flyout" the expression was ignoring them since there state was a still hidden.