Add a separate storage class for PI nodes

This allows us to add pi value to restore target support for PI nodes without
increasing the memory usage for other nodes.

Right now the PI node has a separate header that's used for allocated bit;
this allows us to reduce header bitcount in the future.
Verify that compact page encoding is safe

Since page size can be customized let's do a special validation check for
compact encoding. Right now it's redundant since page size is limited by
64k in alloc_string, but that may change in the future.
Add compact build configuration to Travis