Add Chef::Org model class

Chef Server 12 added multi-tenancy to the open source Chef Server. An
organization is the Chef Servers name for a tenant.  The Chef::Org
class provides a model of an organization to facilitate writting knife
commands that can interact with (create, destroy, list) Chef
organizations.

This implementation is copied directly from knife-opc, the knife
plugin currently in use by chef-server-ctl:

  https://github.com/opscode/knife-opc
Is there a use case for an empty name, or should we raise/require the argument?

```
chef > foo = Chef::Org.new
 => #<Chef::Org:0x000000023a16f8 @name="", @full_name="", @private_key=nil, @guid=nil> 
chef > foo.create
NoMethodError: undefined method `gsub' for nil:NilClass
	from /home/btm/src/chef/lib/chef/http.rb:215:in `create_url'
	from /home/btm/src/chef/lib/chef/http.rb:140:in `request'
	from /home/btm/src/chef/lib/chef/http.rb:126:in `post'
	from /home/btm/src/chef/lib/chef/org.rb:59:in `create'
	from (irb):5
	from /home/btm/src/chef/lib/chef/shell.rb:75:in `block in start'
	from /home/btm/src/chef/lib/chef/shell.rb:74:in `catch'
	from /home/btm/src/chef/lib/chef/shell.rb:74:in `start'
	from bin/chef-shell:37:in `<main>'
```