Orchestration

The intent of this WIP PR is to solicit feedback on the PHP API of Orchestration early and often.

The first set of commits to this PR will be non-functional code samples for Orchestration. The goal of this exercise to design the Orchestration PHP API from the perspective of a developer using this API. Please review these commits as they come in and provide feedback. This will ensure that the feedback is incorporated into future commits.

Once the PHP API is finalized via code samples, the next set of commits to follow will be documentation of the API. Specifically, these will be a Getting Started Guide (similar to https://github.com/ycombinator/php-opencloud/blob/master/docs/userguide/ObjectStore/README.md) and a Complete User Guide (similar to https://github.com/ycombinator/php-opencloud/blob/master/docs/userguide/ObjectStore/USERGUIDE.md). There will be links from the latter to the previously-committed code samples.

Once the documentation commits have been reviewed and finalized, the final set of commits to this PR will be the tests and actual implementation of the API, that is the various classes under the `OpenCloud\Orchestration` namespace.

Once the tests and implementation have been reviewed and finalized, this PR will no longer be WIP. At this point, it may be merged.

To summarize:
* [x] Code samples
* [x] Documentation
* [x] Unit tests and implementation
* [x] Testing code samples against implementation

/cc @gecampbell @jamiehannaford 
I actually think that might be semantically inconsistent in two ways. If I saw a `return true` in the code, I would:

1. expect this method  to return `false` if the template was invalid. Since we are indicating the latter using exceptions, I'd rather just do nothing if the template is valid.
2. be confused about how to use this method. Should I use a `try`-`catch` because of the `InvalidTemplateError` being thrown? But then why is this method returning `true` if the template is valid? How am I supposed to use that return value in conjunction with the `try`-`catch`?