Parameterize load-balancer config file

Add a cfgfile parameter to the initialize methods of all model classes
(although none of them currently use it), the initialize methods of all
controller classes, and the read_config method of all controller classes
and the LoadBalancerConfigurationDaemon class.

Add a cfgfile parameter with default value of
'/etc/openshift/load-balancer.conf' to the initialize method of
LoadBalancerConfigurationDaemon.

Make all controller classes pass the cfgfile argument when instantiating
the model class and when calling their respective read_config methods.

Make LoadBalancerConfigurationDaemon pass cfgfile whenever instantiating
a controller class.

Make oo-admin-load-balancer take a --config option to override the default
configuration file path, and use the specified configuration file when
reading the configuration file or instantiating a controller class.
oo-admin-load-balancer: Recognize f5_batched

Recognize LOAD_BALANCER=f5_batched in oo-admin-load-balancer.

This commit makes essentially the same change to oo-admin-load-balancer
that commit 8353dbdc8da534f30b3488e9cb5d9e95f21ec7d0 made to the daemon.
Rename F5LoadBalancerModel

Rename F5LoadBalancerModel in models/f5.rb to
F5IControlSoapLoadBalancerModel in models/f5-icontrol-soap.rb.

Adjust oo-admin-load-balancer and the daemon accordingly.
Introduce REST iControl model for F5 BIG-IP

Introduce a REST iControl model for F5 BIG-IP, and use it instead of the
SOAP iControl model.

The REST iControl interface has the advantages that it does not need the
f5-icontrol rubygem and that it allows us to manipulate local-traffic
policies.

BIG-IP 11.4 deprecates the HTTP class profile feature and introduces the
local-traffic policies feature in its stead, so we need to use the
latter now, which means we need to use REST.

Update README.md accordingly.

Update README.md for change from SOAP to REST
Try ACTIVEMQ_DESTINATION before ACTIVEMQ_TOPIC

Look for a setting on the key ACTIVEMQ_DESTINATION before falling back
to ACTIVEMQ_TOPIC.  The destination may in fact be a queue rather than
a topic, and the setting should reflect this.

Modify the configuration instructions in README.md and the default
load-blaancer.conf file accordingly.
Add update method to LoadBalancerController

Add a default update method to LoadBalancerController that invokes any
update method of @lb_model if the latter is non-nil and receives update.
LoadBalancerModel: Fix delete_pool_member

Fix the default delete_pool_member method in the LoadBalancerModel base
class to call delete_pool_members with the correct arguments.
controllers/f5_batched.rb: Fix lazy loading

Change the F5-batched controller code to refer to pools, members, and
routes rather than to @pools, @members, and @routes as the former will
lazily initialize the latter, but the latter will be nil and will not
lazily initialize when referenced directly.

This is essentially the same change that commit
f0b0655714bd7e88a584fb719aa38d9477eec260 made to the LBaaS controller.
oo-admin-load-balancer: Fix add-pool-member output

Unswap the pool member and pool name in the output of
oo-admin-load-balancer add-pool-member.
Introduce nginx backend
daemon.rb: Use new add_public_endpoint event

Use the new add_public_endpoint and remove_public_endpoint events
instead of the deprecated add_gear and delete_gear events, which are
being removed in OpenShift Origin 4 and OpenShift Enterprise 2.2.
daemon.rb: Silence some warnings with parentheses
load-balancer/README.md: Formatting fixes

Add some markdown to README.md.
Read auth configuration in models, not controllers

Now that the model objects have access to the configuration file, make
them read authentication credentials from it rather than having the
controller objects read the values and pass them to the model objects.

Make each controller and model class log only its own initialization
rather than logging when it initializes another object, and make these
log messages more consistent and accurate (so, e.g., a controller object
that may be used with an nginx model object doesn't reference F5 in its
log output).
Rename load-balancer controllers

Rename F5LoadBalancerController in controllers/f5.rb to
SimpleLoadBalancerController in controllers/simple.rb.

Rename F5BatchedLoadBalancerController in controllers/f5_batched.rb to
BatchedLoadBalancerController in controllers/batched.rb.

Rename controllers/lbaas.rb to controllers/asynchronous.rb.

Adjust the above controllers all to output more generic output
reflective of the controller classes without making assumptions
regarding which model objects with which they will be paired.

Adjust daemon.rb and oo-admin-load-balancer appropriately.
models/nginx.rb: Fix pool names

Don't prepend "pool_" to pool names because the names from the controller
may already have "pool_" prepended.

Use the POOL_NAME pattern to build the regular expression that will be used
to scan for pool configuration files.
load-balancer/README.md: Use logical quoting.
load-balancer/README.md: Mention LOAD_BALANCER

Explicitly mention the LOAD_BALANCER setting in load-balancer.conf, and
mention "nginx" as a possible value.
Load balancer: alias support

daemon.rb: Add support for add_alias and remove_alias events.

oo-admin-load-balancer: Add support for add-alias, delete-alias, and
list-pool-aliases subcommands.

controllers/asynchronous.rb, controllers/batched.rb,
controllers/load_balancer.rb, controllers/simple.rb: add add_alias and
delete_alias to Pool classes.

models/load_balancer.rb: Add stubs for get_pool_aliases, add_pool_alias,
and delete_pool_alias.

models/dummy.rb: Add examples for get_pool_aliases, add_pool_alias, and
delete_pool_alias.

models/nginx.rb: Implement get_pool_aliases, add_pool_alias, and
delete_pool_alias, using one configuration file for each alias.
models/load_balancer.rb: More useful stubs

Make stubs for methods that should return arrays return empty arrays rather
than nil.