Extended add_command() and help() to include categories for cmds.

Ping @opscode/server-team @schisamo @stevendanna @smith @jamesc @seth 

Added the concept of categories to omnibus-ctl. This allows the user to use the new `add_command_under_catagory` method to add commands to omnibus-ctl that will have a category. Categories allow for much more sane help output, by grouping commands together under categories (the motivation for which arose from people not being able to find the org / user / assoc commands in the CS12 RC in spite of them being printed in help). Here is an example of what the new CS12 help looks like with this branch and [these changes in opscode-omnibus](https://github.com/opscode/opscode-omnibus/pull/486):

```
# chef-server-ctl help
/opt/opscode/embedded/bin/omnibus-ctl: command (subcommand)
General Commands:
  cleanse
    Delete *all* opscode data, and start from scratch.
  cleanup
    Perform post-upgrade removal of now-obsolete data, configuration files, logs, etc.  Add the '--no-op' flag to see what *would* be removed.
  gather-logs
    Create a tarball of recent logs and system information for Chef Support
  help
    Print this help message.
  install
    Install addon package by name, with optional --path parameter indicating directory containing packages
  reconfigure
    Reconfigure the application.
  reindex
    Reindex all server data for a given organization
  show-config
    Show the configuration that would be generated by reconfigure.
  test
    Run the API test suite against localhost.
  uninstall
    Kill all processes and uninstall the process supervisor (data will be preserved).
  upgrade
    Upgrade your private chef installation.
Service Management Commands:
  graceful-kill
    Attempt a graceful stop, then SIGKILL the entire process group.
  hup
    Send the services a HUP.
  int
    Send the services an INT.
  kill
    Send the services a KILL.
  once
    Start the services if they are down. Do not restart them if they stop.
  restart
    Stop the services if they are running, then start them again.
  service-list
    List all the services (enabled services appear with a *.)
  start
    Start services if they are down, and restart them if they stop.
  status
    Show the status of all the services.
  stop
    Stop the services, and do not restart them.
  tail
    Watch the service logs of all enabled services.
  term
    Send the services a TERM.
Organization And User Management Commands:
  org-associate
    Associate a user with an organization.
  org-create
    Create an organization in the chef server.
  org-delete
    Delete an organization in the chef server.
  org-dissociate
    Dissociate a user with an organization.
  org-list
    List all organizationsin the chef server.
  org-show
    Show an organization in the chef server.
  password
    Set a user's password or System Recovery Password.
  user-create
    Create a user in the chef server.
  user-delete
    Delete a user in the chef server.
  user-edit
    Edit a user in the chef server.
  user-list
    List all users in the chef server.
  user-show
    Show a user in the chef server.
Open Source Upgrade Commands:
  chef12-upgrade-data-transform
    Transfrom data from an open source Chef 11 server for upload to an Chef 12 server.
  chef12-upgrade-download
    Download data from a open source Chef 11 server.
  chef12-upgrade-upload
    Upload transformed open source Chef 11 data to a Chef 12 server.
High Avalibality Commands:
  backup-recover
    Set this server to HA backup state, ignoring VRRP
  ha-status
    Show the status of high availability services.
  master-recover
    Set this server to HA master state, ignoring VRRP.
```

As you can see, much more logically grouped. Under the current changes, the default commands in `omnibus-cli.rb` would be added to the `general` category, and the service commands to a `service-managment` category.

**NOTE: add_command still works as is, making this a backwards compatible change.**

Commands added via `add_command` will be added to the original `@command_map` hash, which is now used in addition to the new `@catagory_command_map` hash. The help output for commands without categories is exactly how it was originally, but here is how help output would look if you mixed categories and commands without categories:

```
# chef-server-ctl help
/opt/opscode/embedded/bin/omnibus-ctl: command (subcommand)
non-cat-command
  Here is a description.
another-non-cat-command
  Yet another description.
General Commands:
  cleanse
    Delete *all* opscode data, and start from scratch.
  cleanup
    Perform post-upgrade removal of now-obsolete data, configuration files, logs, etc.  Add the '--no-op' flag to see what *would* be removed.
  gather-logs
    Create a tarball of recent logs and system information for Chef Support
  help
    Print this help message.
  install
    Install addon package by name, with optional --path parameter indicating directory containing packages
...
```

This branch should change nothing functionally besides the help command.

Note: I plan to squash up these commits so don't fret :)