Basic support for adding rules and profiles to a virtual server

I tested with the following code:

f5_virtualserver { "demo2":
  ensure     => present,
  destination => "10.7.124.11:80",
  wildmask   => "255.255.255.255",
  protocol   => "PROTOCOL_TCP",
  type       => "RESOURCE_TYPE_POOL",
  rule       => [{"rule_name" => "demo2", "priority" => 0}],
  profile    => [{"profile_name" => "http"}],
  default_pool_name => "demo2",
  require    => [F5_Pool["demo2"], F5_Rule["demo2"]],
}

The rule and profile are VirtualServerRule and VirtualServerProfileAttribute
respectively:

http://devcentral.f5.com/wiki/iControl.LocalLB__VirtualServer__VirtualServerRule.ashx
http://devcentral.f5.com/wiki/iControl.LocalLB__VirtualServer__VirtualServerProfileAttribute.ashx
Adding a first pass at f5_profileclientssl

I tested it with the following code:

f5_profileclientssl { "demo2":
  ensure                  => present,
  certificate_file        => {"value" => "demo2-server.crt", "default_flag" => false},
  key_file                => {"value" => "demo2-server.key", "default_flag" => false},
  ca_file                 => {"value" => "demo2-ca.crt", "default_flag" => false},
  peer_certification_mode => {"value" => "CLIENTSSL_CERTIFICATE_MODE_AUTO", "default_flag" => false},
}

I tried to stick as close to the iControl API as possible.  In doing so I have
made it so that the values of the parameters take the ProfileString.  This
allows for easy comparison since the data structure returned from the icontrol
gem also works with hashes.
Adding device/ to the path in README
Also patch up RUBYLIB example
Merge pull request #23 from hunner/issue/readme_device_path

Adding device/ to the path in README
Merge pull request #22 from nanliu/tb/rules

Add F5_profileclientssl provider and profile support for virtual server
Implement F5 key/certificate provider.

This will fetch and compare certificate sha1 fingerprint. After testing
several other methods this is the most reliable, despite the additional
overhead of retrieving PEM certs. This is also the easiest way to handle
ceritificate bundles.
Merge pull request #24 from nanliu/tb/certificate

Implement F5 key/certificate provider.

Reviewed-by: Hunter Haugen <h.haugen@gmail.com>
Adding prefetching to keys
Adding prefetching to f5_certificate
Update debug print message
Minor fixes to the node type
Merge pull request #26 from hunner/feature/cert_prefetch

Adding prefetching to f5_certificate

Reviewed-by: Nan Liu <nan@puppetlabs.com>
Merge pull request #25 from hunner/feature/key_prefetch

Adding prefetching to keys

Adding prefetching to f5_certificate

Reviewed-by: Nan Liu <nan@puppetlabs.com>
Merge pull request #28 from brenton/node_fixes1

Minor fixes to the node type

Adding prefetching to f5_certificate

Reviewed-by: Nan Liu <nan@puppetlabs.com>
Clean up F5 certificate provider.

Remove F5_certificate/content. Change digest/md5 -> digest/sha1. Remove
debug message that would expose certificate content.
Update readme to reflect resource changes.
Merge pull request #31 from nanliu/tb/readme

Update readme to reflect resource changes.
Reviewed-by Gary Larizza <gary@puppetlabs.com>
Merge pull request #32 from nanliu/tb/certificate

Clean up F5 certificate provider.
Reviewed-by Gary Larizza <gary@puppetlabs.com>
Update f5 pool create to support all attributes.

Previously f5_pool create wasn't setting all resource attributes. Now
it's setting all attributes during creation.