Feature proposal: Runner mode switch

A `require 'chefspec/server'` currently hard-wires all specs to run against chef-zero. In a mixed test suite with lots of specs not benefiting from chef-zero, this results in a massive slow-down of the whole test suite (see #494).

This proposal introduces a `ChefSpec::Runner` mode switch for fine-grained control over which runner instances are utilizing the `chefspec/server` features. The switch can be configured globally or per runner at instantiation time.

Due to the global default value `:server`, the proposed patches in this PR should maintain backwards compatibility with the current behaviour. Please note, that this switch only has any effect, if the user actually requires `chefspec/server`.

##### Example:

in `spec/spec_helper.rb`:
```ruby
require 'chefspec'
require 'chefspec/server'

RSpec.configure do |config|
  config.mode = :solo
end
```

in `spec/unit/recipes/*_spec.rb`:
```ruby
  let(:chef_run) { ChefSpec::Runner.new(mode: :server).converge(described_recipe) }
```
to explicitely control to run against chef-zero.
  

##### Alternative:

Such a feature could also be achieved by using the `Chef::Config[:solo]` variable. In my opinion, the switch implementation with an rspec variable allows a more elegant and consistent user interface. Also, it is more future-proof, if a third runner mode might hit us unexpectedly ;)