Start setting up some infrastructure for Bundle Groups and associated
permissions.
Work in progress - getting new bundle perms integrated into role views
More work on working new bundle group stuff into role edit view. Also, continued
cleanup of Messages.properties.
Start of remote API design/impl for BundleGroups
trivial change - first commit from intellij :}
add some javadoc and new apis for bundle groups
add storage node shutdown operation that uses pid file

There can be problems with getting the actual, current pid from Sigar, so the
storage node plugin will first attempt to get the pid from the pid file which
should exist on disk. If that fails, then we will attempt to get the pid from
Sigar.

This implementation for shutdown does not work for Windows so need to revist it
to add in Windows support. We may even consider delegating to rhqtcl.
add createInitialBundleVersion APIs
Add new auth token for bundles
initial commit for ConfigEditor which handles updating cassandra.yaml
adding some initial test coverage for prepareForBootstrap operation

The prepareForBootstrap method has been refactored to use ConfigEditor but
there is still a good bit of clean up to do.
updating exception handling and logging in prepareForBootstrap
override default ring delay to speed up test and hopefully fix jenkins failure
Calling the right setter.
Adding the newly (6/28/13) issued certificate for accessing the pto calendar (mail.corp.redhat.com domain) to the rhq-ircbot keystore. This one should be valid until 6/28/15.
If there is just one group definition in ConfigurationEditor, normal form is used instead SectionStack component. Also the "Jump to Section" navigation is hidden for just one group to save some space on the screen.
In progress: working through the bundle remote API and adding fine-grained authz...
adding back support for deploying additional nodes with internode authentication

When the user installs a new storage node the following steps occur,

* The node is committed into inventory (but not part of storage cluster)
* StorageNode entity is created with mode set to INSTALLED
* New node is announced to the cluster
  * Server schedules operation for cluster nodes to update internode auth conf
    file to include the new node
* Server prepares new node for bootstrap
  * Schedules operation on new node to
      * Apply cluster settings
      * Update internode auth conf settings
      * Restart the node so it bootstraps into cluster
        * Token ranges will be assigned to node
        * New node will stream data from other nodes
* Server is notified that new node is up and part of the cluster
* The operation mode is set to NORMAL
* addNodeMaintenance operation is run on each cluster node
  * Updates replication_factor if necessary
  * Runs repair if necessary
  * Deletes old keys
  * Updates seeds property
make storagePort and nativeTransportPort read/write properties
make dataFileDirectories property read/write