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

This should help prevent issues like #35.

Before:
![screen shot 2014-12-03 at 3 52 48 pm](https://cloud.githubusercontent.com/assets/106826/5292004/14bc68b4-7b10-11e4-861a-f370de3205e2.png)

After:
![screen shot 2014-12-03 at 4 50 08 pm](https://cloud.githubusercontent.com/assets/106826/5292005/1a69fd8a-7b10-11e4-94f3-ffd46bd87e81.png)

This also benefits resources:
![screen shot 2014-12-03 at 5 03 00 pm](https://cloud.githubusercontent.com/assets/106826/5292006/1c25587c-7b10-11e4-8f62-cfc2de1dcd11.png)

cc @jamesls, @kyleknap