feature(menus): add basic menu system

Menus can be created and modified on-the-fly using the
getOrCreate method of the elggMenus service. Example:

```js
function(elggMenus, $state) {
  var siteMenu = elggMenus.getOrCreate('site');

  var siteMenu.register('login', function() {
    return {
      section: 'alt',
      href: $state.href('accounts.login'),
      label: 'Log in',
      icon: 'none'
    };
  });
}
```

Doesn't (yet) support:
 * lazy-loading menus
 * pojo menu item definitions
 * directive for outputting a particular menu

Closes #17