Use cross-platform method for terminal width
Support backslash on Windows
Fix #60: make diff/upload/download understand default values
Make diff output friendlier by not printing defaults and printing in a specific order
Don't minimize out the name/id of the container, for easy reading
Tests for new JSON default diff
Protect against bad JSON on the client
Change JSON parse warning to error
Add knife diff --diff-filter option
Minimize files in knife show and download for easier reading
Make diff work with extra/missing directories again (fix for unit test)
Test to ensure json is output in sane order
Make diff formatting better now that output is prettier
Print error for bad json in knife upload
Fix #82: Allow knife upload of files with no name/id in them
Ignore . dirs in data bags and cookbooks
Report failed network reads in knife diff
Print out URL when we fail to retrieve
[CLI] Added --chef_repo_path option

This will override the chef_repo_paths option in the config. When
specified, the directory is assumed to contain the entire chef repo
you want.

This option is put in place so that testing migrations using
`knife download` and `knife upload` is easier. If "override everything" is
a feature request you require, then please file a bug report
[COOKBOOKS] Added versioned_cookbooks support.

 - Adding "versioned_cookbooks true" to knife.rb turns on versioned cookbook mode
 - Cookbooks are assumed to be named such as:

cookbooks/
  apt-1.8.4
  apt-1.7.0
  postgresql-2.2.2

 - This allows for multiple versions.
 - Caveat: this commit requires the CHEF-3307 patch against chef 10-stable