Improves Test Kitchen's support for older (non-Linux) Unixes

Changes include:

* Convert all remote Bash shell code to Bourne (`/bin/sh`). This will allow greater portability across Unixes.
* Ensure Busser respects the `driver_config/sudo` config option.
* Update `Kitchen::Busser` and `Kitchen:: Provisioner::ChefZero` to install all gems and plugins into a sandbox.
* Expose config options for: the remote ruby binpath, and remote command `PATH`.
* Add a `proxy` driver for executing tests against long-lived, non-ephemeral test instances.

FUN FACT: These changes have enabled me to leverage Test Kitchen to execute an integration test suite against a physical network switch! Example `.kitchen.yml`:

```yaml
---
driver_plugin: proxy
driver_config:
  require_chef_omnibus: false
  sudo: false
  username: <%= ENV['USER'] %>
  path: $PATH:/opt/sdk/juniper/bin
  ruby_binpath: /opt/sdk/juniper/bin

platforms:
- name: junos-13.2X50-D10.2
  driver_config:
    host: <%= ENV['KITCHEN_JUNOS_132X50_HOST'] %>
    reset_command: cli -c 'configure; rollback rescue; commit'

suites:
- name: default
  run_list:
  - recipe[fake::vlan_create]
```

/cc @fnichol @lamont-granquist @sethvargo