Cargo

I've removed the Makefile, and switched to directly building the library, examples and tests with cargo.

`cargo build` will build the library

`cargo test` will build the tests in the library, the tests in `tests/test.rs` and the examples.

I've also switched from using `crate_id` to `crate_name` see [RFC 35](https://github.com/rust-lang/rfcs/blob/master/complete/0035-remove-crate-id.md).

(FYI, the unit tests aren't passing, and they are also segfaulting, the pass failure looks to be a rounding error, e.g. `(2999/1000 as int) != 3`, no idea why it's segfaulting)