[rackspace] More optional parameters for Cloud Load Balancers

This makes the `:nodes` and `:port` parameters optional for `create_load_balancer()` and `load_balancers.create()`. The docs (and testing against the API) indicate that `:virtual_ips` *is* required.

/cc @elight, @maxlinc

fixes #2902
**Warning**: A bit off topic. Provides a possible long-term solution to @smashwilson's question, but it's probably overkill for the scope of this PR.

I experimented a while ago with using [branch by abstraction](http://martinfowler.com/bliki/BranchByAbstraction.html) to replace the Fog::Schema::DataValidator with something based on [json-schema](https://github.com/hoxworth/json-schema).

(Note: although it's a JSON-Schema validator, it works on hashes as well as JSON)

The only real change was to have the FormatsHelper choose the validator based on the schema object, rather than always using the Fog::Schema::DataValidator. So all existing tests would keep using the existing validator, but you could specify a preference doing something like:

```ruby
class JSONSchema < Hash; end

# Setup the formats Helper to use this:
  def validator_for
    schema.is_a?(JSONSchema) ? Fog::Schema::JSONSchemaValidator.new : Fog::Schema::DataValidator.new
  end
end

# Default format definitions retain current behavior:
ERROR_PAGE_FORMAT = {
  'errorpage' => {
    'content' => String
  }
}

# Or can replace them with a JSON Schema:
ERROR_PAGE_FORMAT = JSONSchema.new({
  type: "object",
  required: "content",
  properties: {
    content: {
      type: "string"
    }
  }
})
```

JSON schema is obviously a bit more verbose and may be confusing to some people, so the existing validator is probably fine in many cases. However, there's two arguments for JSON Schema support:
- It's able to do much more thorough validation, including the validation @smashwilson mentioned, but also many others.
- More and more services are using JSON Schema to defined and document services (e.g. with Swagger, Apiary, or IO Docs) or in the provider to validate the message received (e.g. the [Interpol RequestBodyValidator](https://github.com/seomoz/interpol#interpolrequestbodyvalidator)). So even though JSON schemas are a bit tricky to write, developers may be able to re-use existing schemas for the service.