realized? on a delay blocks for result
`realized?` on a delay that is in the process of being realized blocks rather than just returning false:
Cause: Delay.isRealized() is synchronized against the same (this) lock that is used when forcing the delay, so calling `realized?` on it will effectively block until the result is done, then return true.
Approach: the fn field being checked is volatile - it's safe to just race with the realization and check if it's set yet by removing synchronized on the isRealized() method.
Reasoned through the change, applied, tested, ran through in REPL.
Example code in the wild that is assuming realized? will not block for realization: https://github.com/pedestal/pedestal/blob/d20065013abf5d3793ae5301e18a2398707fa2a9/service/src/io/pedestal/http/request/lazy.clj#L140-L149