Merge pull request #25 from kmcallister/rustup

Upgrade to rustc 0.13.0-dev (78a767689 2014-10-10 14:57:03 +0000)
Upgrade to rustc 0.13.0-nightly (222ae8b9b 2014-10-18 00:47:22 +0000)

- Need this working for html5ever.
Merge pull request #27 from Ygg01/master

Upgrade to rustc 0.13.0-nightly (222ae8b9b 2014-10-18 00:47:22 +0000)
Replace removed deprecated method call

`move_iter` was deprecated, now it’s gone altogether.
Merge pull request #34 from chris-morgan/patch-1

Replace removed deprecated method call
atom: Slight efficiency optimization in string interning
Merge pull request #35 from pcwalton/list-optimization

atom: Slight efficiency optimization in string interning
Fix PartialOrd for Atom

This snuck in during a Rust upgrade.
Add tests for low-level representation
Add more comprehensive benchmarks
Revert "atom: Slight efficiency optimization in string interning"

It causes segfaults in the new benchmark suite.

This reverts commit 724232d1b1c40fd44501c33024f840b033f816fb.
Consolidate packing / unpacking code

Mostly for safety and maintainability.  This makes it easy to see the overall
encoding scheme, between repr.rs and the representation tests in atom/mod.rs.

Thanks to the magic of LLVM's inlining and SROA, this code is faster on some
benchmarks and not significantly slower on any.

Also added debug_assert!s and changed the existing non-test assert!s.  I
believe they're all safe to omit in release builds.
Use #[unsafe_no_drop_flag] so that Atom can be only 64 bits

Drop flags are going away, hopefully, but in the mean time here's a simple fix.
Use lazy-static for the global hash table
Use XXHash instead of SipHash

This is an approximately 8% speedup on interning a 56-byte string.
Fix warnings
Add optional event logging

We can use this with Servo to generate traces from real websites for
optimization purposes.
Add an example for event logging
Add a little info to the README
Get rid of an unneeded unsafe in macros code