Add checkout command.
Finesse the handling of the etc directory.
Timestamp v0.953.
Increment to v0.954.
Remove -CAS from `sqitch` on perl 5.10.0.
Get rid of the space, too.
Merge branch 'master' of github.com:theory/sqitch
Add tests to checkout.
Refactor deploy and revert variables configuration.
Don't import unused modules.
Require sqitch() and deploy_variables() as appropriate.
Use the current dir for the Git dir.

Because Sqitch should nearly always be called from the root directory of a
project; that's where the configuration file lives by default, for example.
May want to add an option to point to the git project directory, or we may
want to add code to search for it, depending on how things shake out.

In passing, also require that the `git` object be an instance of Git::Wrapper.
Have checkout manage multiple independent plans.

Rather than relying on the plan from the Sqitch object. This allows us to
remove the code that lets the `plan_file` attribute of Plan be either a file
handle or a file name, which felt weird. Instead, add a `parse` method to
plan, and pass the contents of the target plan to that method. Then add a
`plan` attribute to Engine (it has previously delegated the method to Sqitch)
and allow it to be read/write. The default is still to fetch it from Sqitch,
but now we can set it for other plans, as necessary. In this case, checkout
sets it before reverting, and then again after changing branches, to deploy
with the new plan.

Still need to do some error handling, and the checkout tests fail, since I did
this work on the plane and did not have Git::Wrapper installed. Will take
care of that next.