Support latest resource model version.

This change adds support for the latest version of the JSON description files
for resources. The following has changed:

1. An action's `.path` has been moved into `.resource.path` if a resource
   is present. If it is present, then a path outside of the resource is
   no longer valid. This fixes #33.
2. Sub-resources previously defined with either `hasOne` or `hasMany` are now
   defined with a single `belongsTo` key. The internal Boto 3 representation,
   however, remains the same and is accessed via `resource.references`.

As a result of the format changes, I had to update the internal resource
model, adjust the search path behavior for actions and update various tests
that made assumptions about the older format.

I also discovered that we were using a mix of old and new files for different
services, so this change includes updates to EC2 and Glacier so that all
resources are using the new format. With this change, we no longer support
the older format.
Fix failing test
Merge pull request #34 from boto/model-version-update

Support latest resource model version. Fixes #34.
Add S3 and SQS integration tests.

This adds integration tests that exercise previously untested functionality,
specifically this adds the following to the existing describe calls:

* Create and delete remote resources
* Call actions to put and get data from remote resources
* Handle low-level responses from a service
* Exercise low-level waiters (to be replaced with high-level waiters)
* Access data attributes of pre-loaded resources with no `load` method

The last item would have prevented #33. This PR is related to #34,
which fixed the underlying issue that this test would have caught.

The full integration test suite now takes around 20-30 seconds on
my machine.
Update param documentation to be more explicit.

This pull request modifies the guide and generated reference documentation
to make it more obvious that operation parameters need to be passed as
keyword arguments rather than positional arguments. It does the following:

* Update the guide to explicitly call out that keyword arguments
  must be used instead of positional arguments.
* Update reference documentation for operations to:

  * List all arguments as keyword arguments (i.e. `MyArg=None`)
  * Show an example with all required arguments
  * Specify whether a parameter is optional or required after its type
Update dependencies
Version bump to 0.0.4
Merge pull request #37 from boto/docs-kwargs

Update param documentation to be more explicit.
Default to using us-west-2 for integ tests
Merge pull request #36 from boto/integ

Add S3 and SQS integration tests.
Fix failing integration test.

This fixes a problem where running the integration tests in parallel
would result in errors because the resource names were based on a
timestamp. Now, a new utility method is used which gives back a
unique ID based on a name, a timestamp, and a random integer.
Implement batch actions.

This change implements batch actions on collections:

```python
s3.Bucket('boto3').objects.delete()
```

It does the following:

* Create a `CollectionFactory` class to generate subclasses of
  `CollectionManager` and `ResourceCollection`.
* Update the `ResourceFactory` to use the new `CollectionFactory`.
* Add a public `pages()` method to collections. This returns entire
  pages of resource instances and it used by `__iter__` as well.
* Add batch actions as methods via the new `CollectionFactory`.
* Add a `BatchAction` subclass of `Action` which does the following:

    1. Get a page of results from the collection's operation
    2. Build parameters for the batch action operation
    3. Call the batch action operation
    4. Repeat until no more pages

* Makes some previously public members private on `Action` as these
  should never have been public.
* Update documentation to include collection classes.
* Add tests to cover the new functionality.