Support fact in catalog.json

No "fact" case is still supported. If "fact" isn't specified, all
tables act as fact table. We should remove the code when all
catalog.json have "fact" parameter. (It will be the time that we
validate catalog.json and reject catalog.json that doesn't have "fact"
parameter.)