Base provisioner refactoring

This is largely an internal refactoring of the Provisioner API, internal and external (which is not yet considered stable). There are several high level changes:

* `#calculate_path` method is extracted to `Kitchen::Provisioner::Base`
* A modified `#create_sandbox` & `#cleanup_sandbox` are extracted to `Kitchen::Provisioner::Base`. Now `#create_sandbox` can be better chained with super calls and no longer returns the sandbox path. A new method `#sandbox_path` must be used instead in Driver code.
* A new class method `expand_path_for` is added to `Kitchen::Provisioner::Base` so that Provisioner authors can direct local path and file config values to be path expanded. This greatly helps with debugging and diagnostics.
* Applied new common base functionality in `Kitchen::Provisioner::Base` back into the newly merged `Kitchen::Provisioner::Shell` provisioner, thanks to @ChrisLundquist.