Extract running into a separate ssh connection class
Cache SSH connections

Results from 10x benchmark

```
Rehearsal ----------------------------------------------
cached:      0.260000   0.040000   0.300000 (  2.814596)
uncached:    0.780000   0.100000   0.880000 ( 11.084209)
------------------------------------- total: 1.180000sec

                 user     system      total        real
cached:      0.260000   0.040000   0.300000 (  2.886833)
uncached:    0.760000   0.100000   0.860000 ( 10.811572)
```
Make performance test somewhat reusable
Fix ExecResult reference
Update manifest
Another manifest update
Support Berkshelf 3.0

Berkshelf 3.0 will replace `Berksfile#install(:path => path)` with
`Berksfile#vendor(path)`. As we don't have hard dependency on it, we
need to support both.
Test with Berkshelf v3.0.0(.beta)
Merge pull request #265 from matschaffer/ssh-refactor-2

Small refactor to cache SSH connections
Merge pull request #268 from tmatilai/berkshelf-3.0

Support Berkshelf 3.0