If _farmPlots is executed when _getNumPlots(landlord) < _toiler.plotId is true for a staked munchable, the schnibblesTotal produced then after  will not be accounted for until the munchable is unstaked and staked again.
Audit: 2024-07-munchables-findings
Severity: HIGH

# Lines of code

https://github.com/code-423n4/2024-07-munchables/blob/94cf468aaabf526b7a8319f7eba34014ccebe7b9/src/managers/LandManager.sol#L258-L261
https://github.com/code-423n4/2024-07-munchables/blob/94cf468aaabf526b7a8319f7eba34014ccebe7b9/src/managers/LandManager.sol#L247-L251


# Vulnerability details

## Impact
If MunchableA is in a plot that got moved because the landlord unlocked partial amount then this `_getNumPlots(landlord) < _toiler.plotId` holds true.
https://github.com/code-423n4/2024-07-munchables/blob/94cf468aaabf526b7a8319f7eba34014ccebe7b9/src/managers/LandManager.sol#L258
 Now if _farmPlots is executed then ToilerState.dirty attribute of MunchableA is set to true.
 `
 if (_getNumPlots(landlord) < _toiler.plotId) {
                timestamp = plotMetadata[landlord].lastUpdated;
                toilerState[tokenId].dirty = true;
            }`
and then remaining code of that function will execute and schnibblesTotal produced until then will be added to renterMetadata.unfedSchnibbles 
`renterMetadata.unfedSchnibbles += (schnibblesTotal -
                schnibblesLandlord);`
https://github.com/code-423n4/2024-07-munchables/blob/94cf468aaabf526b7a8319f7eba34014ccebe7b9/src/managers/LandManager.sol#L295-L300
 until now every thing is fine but again if _farmPlots function is executed then  as _toiler.dirty is true `if (_toiler.dirty) continue;`
https://github.com/code-423n4/2024-07-munchables/blob/94cf468aaabf526b7a8319f7eba34014ccebe7b9/src/managers/LandManager.sol#L251
 the remaining code of this iteration of  for loop will always skip then we cannot account schnibblesTotal of munchableA unless we unstake and stake it again.
Even if we move munchableA to a valid unoccupied plot by using transferToUnoccupiedPlot function we are not updating ToilerState.dirty attribute of munchableA so even after moving to a valide plotId we are not accounting schnibblesTotal of munchableA.  

## Proof of Concept
suppose a land lord has 100 plots. now you stake a munchableA in his 90th plot, after that if he unlocked partial amount so that now he has only 80 plots. now if u  use any of the functions(stakemunchable,unstakemunchable,transferToUnoccupiedPlot,farmPlots) then  ToilerState.dirty of munchableA is set to true and  schnibblesTotal of munchableA untill now will be added to renterMetadata.unfedSchnibbles. From now onwards when ever u use any of these functions (stakemunchable,unstakemunchable,transferToUnoccupiedPlot,farmPlots),as ToilerState.dirty of munchableA is set to true iteration of for loop for munchableA will be skiped (`if (_toiler.dirty) continue;`)
https://github.com/code-423n4/2024-07-munchables/blob/94cf468aaabf526b7a8319f7eba34014ccebe7b9/src/managers/LandManager.sol#L251-L308
so we are not accounting schnibblesTotal of munchableA untill again we unstake and stake munchableA.Even after moving to a valid plotId using transferToUnoccupiedPlot function , ToilerState.dirty of munchableA is not set to false, so even if munchableA