Add a bindgen! macro

The bindgen! macro expands to a collection of items in the current module. It currently requires the caller add the following to their crate root.
```rust
extern crate libc
```

The syntax is simple. Header files are passed as string parameters and everything after is a named parameter.

The parameters and their defaults are:
- link
- link-static
- link-framework
- match
- abi ("C")
- emit_builtins (true)
- allow_bitfields (false)
- allow_unknown_types (false)
- clang_args ("")

Example usage:
```rust
#[allow(dead_code, uppercase_variables, non_camel_case_types)]
mod bindings {
    bindgen!("header.h", "another_header.h", allow_bitfields=true, link="somelib"
             match="file.h", abi="C", allow_unknown_types=false, emit_builtins=false,
             clang_args="-I /usr/local/include")
}
```