Merge pull request #1 from eholk/fixes

Futher fixes to make things work with the new compiler.
finalize becomes drop. vec:: functions become methods.
Made some methods public on the high-level api.
Merge pull request #2 from sebcrozet/master

Make things work with the last compiler.
Add KernelArg impl for u32 and f64.
Merge pull request #3 from sebcrozet/master

Add KernelArg impl for u32 and f64.
Add KernalArg instances for u64, i32, i64, and f32.
Add methods to manipulate Vector without allocations.

This adds two methods to Vectors.
`rewrite' updates the content of the vector without re-creating an openCL buffer.
`to_existing_vec' reads an openCL buffer and output the data on an user-provided vector. This
avoids useless allocations of a new rust vector.
Replaced copy by clone.
Merge pull request #4 from sebcrozet/master

Improve Vector reusability.
Update to last Rust api.

`as_c_str` is now a method.
`as_buf` is replaced by the method `as_imm_buf`.
Merge pull request #5 from sebcrozet/master

Update to last Rust api.
Update to the last Rust syntax.

Use the new `for` .. `in` loop.
Take in account the new associativity of the `as` keyword.
Update to compile with the last rust.
This removes the `VectorType` trait.

Maybe a similar solution will be introduced on the future, but the current system is not useful.

VectorType was only a hint to tell that a struct is memcpy-able. This is a good type-level safety
but it makes the Vector struct somehow hard to use in some situations.

Assume someone writes a library A with a lot of math types.
A does not depend from rust-opencl, and thus does not implement the VectorType trait anywhere.
Another person writes a binary B which uses A. The only way for him to use the Vector type without
being unsafe, is to wrap the types defined by A on a struct, and implement VectorType for that
struct. This is annoying since this implies memory copies to build the wrapped struct vector.

A similar problem arises for the `KernelArg` trait. But since this trait is not used for any
container element, it remains easy to use.
Changed fn drop(&self) to fn drop(&mut self)
Fixed unit tests for Unique.
Enabling unstable features for Rust 0.9
make check uses RUST_THREADS=1 to avoid races.
Add basic event list support