chef 0.1.0

Models for Chef Server objects
# Chef objects

This library depends upon `chef_api` for most functionality, but
provides a set of models for common Chef objects, such as nodes, roles
and environments.

# Usage

Models implement a version of`try_from()` in the context of [`serde_json`]'s Value
type - which is what is returned by all requests.

```rust
use chef_api::api_client::{ApiClient, Execute};
use chef::models::Node;

let client = ApiClient::from_credentials(None)?;
let node = client.nodes().node("my_node").get()?;
let node: Node = Node::try_from(node)?;
println!("Node name is {}", node.name.unwrap());
```

Once `try_from` is stablised in Rust, we'll switch to that.

## Lists 

Many APIs in the Chef Server return a list of items. Models will try to
convert those lists in to `Iterator`s:

```rust
use chef_api::api_client::{ApiClient, Execute};
use chef::models::NodeList;

let client = ApiClient::from_credentials(None)?;
let nodes: NodeList = client.nodes().get()?.into();
for n in nodes { 
  println!("saw node: {}", n);
}
```