outdated variable is not effective to check price feed timeliness
In ChainlinkOraclePivot, it uses one `outdated` variable to check if the two price feeds are `outdated`. However, this is not effective because the price feeds have different update frequencies.\\nLet's have an example:\\nIn Polygon mainnet, ChainlinkOraclePivot uses two Chainlink price feeds: MATIC/ETH and ETH/USD.\\nWe can see that\\nIn function `_getLatestRoundData`, both price feeds use the same `outdated` variable.\\nIf we set the `outdated` variable to 27s, the priceFeedA will revert most of the time since it is too short for the 86400s heartbeat.\\nIf we set the `outdated` variable to 86400s, the priceFeedB can have a very `outdated` value without revert.\\n```\\n        try priceFeedA.latestRoundData() returns (\\n            uint80,\\n            int256 price,\\n            uint256,\\n            uint256 updatedAt,\\n            uint80\\n        ) {\\n            require(\\n                block.timestamp - updatedAt <= outdated, // solhint-disable-line not-rely-on-time\\n                "ChainLinkOracle: priceFeedA outdated."\\n            );\\n\\n            priceA = SafeCast.toUint256(price);\\n        } catch {\\n            revert("ChainLinkOracle: price feed A call failed.");\\n        }\\n\\n        try priceFeedB.latestRoundData() returns (\\n            uint80,\\n            int256 price,\\n            uint256,\\n            uint256 updatedAt,\\n            uint80\\n        ) {\\n            require(\\n                block.timestamp - updatedAt <= outdated, // solhint-disable-line not-rely-on-time\\n                "ChainLinkOracle: priceFeedB outdated."\\n            );\\n\\n            priceB = SafeCast.toUint256(price);\\n        } catch {\\n            revert("ChainLinkOracle: price feed B call failed.");\\n        }\\n```\\n
Having two `outdated` values for each price feed A and B.
The `outdated` variable is not effective to check the timeliness of prices. It can allow stale prices in one price feed or always revert in another price feed.
```\\n        try priceFeedA.latestRoundData() returns (\\n            uint80,\\n            int256 price,\\n            uint256,\\n            uint256 updatedAt,\\n            uint80\\n        ) {\\n            require(\\n                block.timestamp - updatedAt <= outdated, // solhint-disable-line not-rely-on-time\\n                "ChainLinkOracle: priceFeedA outdated."\\n            );\\n\\n            priceA = SafeCast.toUint256(price);\\n        } catch {\\n            revert("ChainLinkOracle: price feed A call failed.");\\n        }\\n\\n        try priceFeedB.latestRoundData() returns (\\n            uint80,\\n            int256 price,\\n            uint256,\\n            uint256 updatedAt,\\n            uint80\\n        ) {\\n            require(\\n                block.timestamp - updatedAt <= outdated, // solhint-disable-line not-rely-on-time\\n                "ChainLinkOracle: priceFeedB outdated."\\n            );\\n\\n            priceB = SafeCast.toUint256(price);\\n        } catch {\\n            revert("ChainLinkOracle: price feed B call failed.");\\n        }\\n```\\n