Replace ~ with Box and box where appropriate

With this commit, the code compiles with the latest Rust version.
Bring code up to date with local_data API changes
Merge pull request #151 from hannobraun/rust-upgrade

Upgrade to latest Rust
Update to nightly
Merge pull request #152 from bjz/update

Update to nightly
std::cast::transmute -> std::mem::transmute
Merge pull request #153 from alexanderchr/master

std::cast::transmute -> std::mem::transmute
Updated for latest Rust
Merge pull request #157 from ozkriff/master

Updated for latest Rust
Updated to latest Rust: ~str -> BufStr
Merge pull request #159 from ozkriff/master

Updated to latest Rust: ~str -> BufStr
Remove workaround for rust bug mozilla/rust#11040.
Merge pull request #160 from bjz/remove-workaround

Remove workaround for rust bug mozilla/rust#11040.
StrBuf->String
Remove trailing whitespace
Merge pull request #161 from bjz/string

StrBuf->String
Fix README example
Merge pull request #162 from bjz/readme

Fix README example
Bring code up to date with Eq changes in Rust

This contains two kinds of changes:
- TotalEq was renamed to Eq, so where TotalEq was derived before, Eq is
  now derived. This required also deriving PartialEq, since it is
  required by Eq and not derived automatically.
- Where Eq was derived before, derived PartialEq in addition to make it
  compile. This is not equivalent to before (since the old Eq is now
  called PartialEq), but I saw no reason to only make the weaker
  equivalence guarantees provided by PartialEq in those cases.
Fix snake case compiler warning

Since the function in question directly mimics an OpenGL function, I
believe disabling the warning is better than renaming the function.