Cleanup: flense.core no longer depends directly on fs