Add functionality to build and install chef gem from client source code.

:construction:

If your `.kitchen.yml` includes

```yml
provisioner:
  name: chef_solo
  chef_git_sha: 9ec6b92b9eefc07b35e6d36bad3568cfd7bf82d4
  chef_git_url: "github.com/opscode/chef"
```

then `kitchen` will download the source code from the commit with matching SHA, build a gem from the source code using `rake`, and install the gem locally into `/opt/chef/`. Will always download and install from fresh source code. Requires `chef_omnibus` or a previous installation of `chef`. Does not work with and will not be made to work with `opscode/chef/10-stable` branch.

Verified on:
* Ubuntu 12.04 (vagrant/virtual box, EC2)
* CentOS 6.4 (vagrant/virtual box, EC2): Needed to `chown` the directory the client code is installed to in order to `bundle install` without `sudo`. For $REASONS (it'd be great if someone knows...) with `export PATH=/opt/chef/embedded/bin:$PATH`, `sudo -E` commands won't find `bundle` and  `sudo -E /opt/chef/embedded/bin/bundle exec rake gem` outputs `bundle: command not found: rake`.

Known broken on: