Deduplicate repeated signal reads

Signal reads that occur multiple times within a computation are now deduplicated to improve performance and reduce unnecessary re-evaluations.