Use foster parenting for non-space table text
Change the tree builder interface around appending stuff
Implement foster parenting
Fix travis link.

[kmcallister: fixes #4]
Move NodeEnum into its own file
RcDom fixes
Remove useless `#[macro_escape]`s

This should be a module attribute, and anyway isn't needed because these macros
are used down the module hierarchy but not up.
Implement a parent-ownership DOM
Switch error!() to warn!()
Don't allocate and format error messages when exact error reporting is off
Move non-procedural macros into their own files
Account token sink time separately in tokenizer profiling
Split whitespace only as much as we need to make tree builder progress

This saves almost 200 ms parsing 1MB of lorem ipsum with no tags.

We split whitespace at the beginning in order to ignore it while transitioning
from Initial to InBody mode.  But the bulk of the document is processed in
InBody mode and doesn't need split whitespace.  So it's inefficient to copy the
entire document into many separate tokens.

This also fixes a bug with multibyte characters.
Specialize Bitset64 to characters

And move some code around.

Drop the commas from the macro invocations to simplify procedural macro
implementations of the same functionality (to come).
Use Cargo-ified rust-phf

Until we Cargo-ify html5ever, it's necessary to manually build rust-phf before running make.
Rust upgrade misc
Make the tokenizer macros hygienic
Convert the tree builder's unexpected!() macro to a function

Avoids hygiene issues.
Work around rust-lang/rust#16617
Update for rust-phf changes