thdat: Add support for th105 and th123

As you know, Touhou Hisoten(th105) and Hisotensoku(th123) data archive format has some differences when compared with the one ZUN uses in his game.
* Entry list comes first.
* It has the directory structure; entry name like ```data/se/reimu/001.cv3``` is possible.
* It does not compress files.
* It uses RNG to generate encryption key for the entry list.

Because of these differences, I had to change how thdat archives files.
* Set entry names first, and then initialize the archive.
* Find all files and directories in the input directory. Now we can use ```thdat c14 th14.dat data/``` instead of ```thdat c14 th14.dat data/*```. But I haven't tested this in Windows, so there might be bugs.

brightmoon helped me a lot when understanding the format.