Added comparison control to ScanCursor.

You can now provide a value which implements CompareStrs, which will be
used to determine if two tokens match.  The Cursor trait also exposes
this so that scanners can also make use of it.

For issue #18.
Added more whitespace policies, and changed Whitespace interface.

Interface had to change because policies need to be able to override the
contents of the resulting space tokens.

For issue DanielKeep/rust-scan#4.
Removed Default on Tokenizer, Whitespace and CompareStrs traits.

It wasn't being used for anything.  I left it on the implementations,
since it doesn't do any harm.
Cursor now implements a much nicer Show.

It's actually readable!
Cursor now escapes strings in output.
Added some more debug logging to Cursor.