Vertex format generator macro

The new format is declared as a struct:
```rust
#[vertex_format]
struct MyVertex {
     a: [f32, ..2],
     #[normalized]  //optional - treat as a fixed-point float
     b: i16,
     #[as_float]  //optional - treat as an absolute float
     c: [i8, ..4],
     #[as_double] //optional - treat as a high-precision float
     d: f64,
}
```
Then a mesh can be generated simply by:
```rust
let mesh = gfx::Mesh::from::<MyVertex>(my_buffer, number_of_vertices);
```