cPrefab now uses a struct for block type definition in CharMap.

As suggested by worktycho in 7b585290fccd3dc074b1f9feef0af754ab3dd632, instead of packing the two values into a single int, they're packed into a struct.
Also added a test code for the prefab parsing in SELF_TEST.