Breaking changes: switch to an iterator style instead of closures.

This changes how the render loop and events are handled.
Instead of a `render_loop` method that takes a closure, an
iterator is used.

For example, use:

```rust
for frame in window.iter { }
```

instead of:

```rust
window.render_loop(|w| { })
```

Event handling is modified in a similar fashion. Use:

```rust
for event in frame.events().iter() { }
```

instead of:

```rust
w.poll_events(|w, e| { })
```

All the examples have been updated.

Also, because of #31, the cameras and post processing effects
cannot be stored permanently on the window. Thus, those must be
set at each render step (by modifying the current post
processing effect and cameras given by the `frame`). See the
`camera.rs` and `post_processing.rs` files for examples.

Fix #33.
Fix #31.