Split common file node functionality to a base class and properly reparse project on file node saving