Make the internals all use unicode, even on py2.

This was happening on py3 anyway, so might as well try to be
Unicode-clean everywhere.

The CSS charset detection is not actually implemented yet.

Also, speedups are now totally broken on py2.  Please hold.
Made the speedups module Unicode-aware!

As part of this, I also got to (had to) remove the inlining of line
numbers into the source code delimited by NULs; instead, the scanner and
its pending blocks now just track the current line number.

Works on both 2 and 3, too.
Remove the "thin ice" logic from the block locators.

It took some experimentation to figure out what this actually does.  It
parses "a,\nb\nc{...}" such that "a,\nb" is considered a separate block
or property or whatever from "c{...}".  I think this is left over from
how xCSS treated blocks (with regexes!), but it looks outright wrong to
me, since a CSS parser would treat that as equivalent to "a, b c {...}".

So away it goes!
Add some unicode_literals, fix some str()s.
Return Unicode from the C scanner.  More __future__.

Test suite now runs without any Unicode warnings.