Replace Tag.find_all() with Tag.tokenize()
Don't match URLs
Fix assertion bug (we don't really care if whitespace changes)
Canonicalize the order of tags at the edge so that different slices make idempotent edits