circuit_t::timestamp_dirty should be cleaned up

circuit_t::timestamp_dirty is used in multiple bizarre ways, which should be reverse-engineered, documented, and cleaned up (probably by replacing it with multiple fields, each with a name which reflects its actual meaning and/or purpose). See also the legacy/trac#7157 (moved) review discussion.

Also, is there a good reason for it to be in circuit_t, not origin_circuit_t? (Any use of it on or_circuit_ts (or even on service-side rendezvous origin_circuit_ts) would have different semantics.)