Merged "cheese" branch manually

In order to keep history of ethna's mainstream,
I do this merge manually.
Iin other words, I imported the whole tree of cheese branch into develop branch.
By this commit, the develop branch becomes totally same as cheese branch.