use F_CLOEXEC if we can
Fix user group modification for smartos
Merge branch 'CHEF-4199'
[OC-6938] Remove summary mode from the client

remove summary-only rspec tests
[OC-6569] Rework generation of run_id to be in client

* Generate run_id on client and send to server on run begin
* Use SecureRandom for ID generation.  This will not work on Ruby < 1.8.7.
  On those platforms we disable reporting
* Use generated run_id in specs, checking it's passed through correctly
[OC-7356] Protocol Version for Reporting

- Add protocol version header
- Handle reporting protocl version mismatch error
- Clarify message when client protocol version is wrong for reporting
- Modify tests to have extra header passed into mocks
[OC-6939] Use start_time/end_time from chef-client

Set start_time/end_time in reporting start/end messages
only post exceptions if we've got the node setup
[OC-7370] Rename node_run begin action to start
The protocol for calling ResourceReporter has changed - now
run_started() must be called as well in order to set up the
state
Refactor of the protocol for initializing ResourceReporter

We now extract the node info from run_started, not node_load_completed
so we now don't need to have a callback on node_load_completed
Add start_time to end of run reporting message
monkey patch SecureRandom with uuid method if required
Merge branch 'CHEF-4146'
CHEF-4115: fixed config_file path lookup in exception text
added tests for CHEF-4115
[CHEF-4076] adds 'set' subcommand to knife node run_list
Adds another test for correct amount of arguments

@fnichol and I paired on this and come to this method.
We split the tests into two cases for test readability.
[CHEF-4076] Moved node loader to post-args validation, per @btm & @stevendanna
[CHEF-3817] Fix dedupe in cookbook_order by returning dependencies as symbols.

And add matching spec.
[CHEF-4022] "knife cookbook download" of nonexistant cookbook throws NoMethodError