Start C port of tag tokenization; refactor the init func.
Port more Python tokenizer updates to C.
Finish porting misc changes; add prototypes for remaining functions.
Implement Tokenizer_parse_tag(), Tokenizer_really_parse_tag()
Implement Tokenizer_push_tag_buffer()
Implement Tokenizer_handle_tag_data(); add a read-backwards macro.
Implement Tokenizer_handle_tag_space(); refactor textbuffer writing.

- Add a test for very long strings of text.
Implement Tokenizer_handle_tag_text(), Tokenizer_handle_blacklisted_tag()
Implement Tokenizer_handle_tag_close_open()
Implement Tokenizer_handle_tag_open_close()
Implement Tokenizer_handle_tag_close_close()
Implement Tokenizer_handle_invalid_tag_start()
Implement Tokenizer_handle_single_only_tag_end(), Tokenizer_handle_single_tag_end()
Reset routes properly.
Correctly set TagOpenData's default values.
Refactor TagData code into dedicated functions.
Properly handle the first space after a tag name.
Route failure shouldn't be consumed before it reaches Tokenizer_parse_tag().
Fix unsafe context definitions.
Don't decrement refcount with PyList_SetItem().