merge BuildFSState and FSState into one class;
explicit API to mark file dirty for the current or the next compilation round