Call Artifact.reset_cached() only when needed

Follow-up to !1325 (merged) as suggested in !1325 (comment 172097963):

The next step should likely be to call reset_cached() only when needed instead of calling it on every _update_state(). I'd expect it to suffice to call it in _pull_done() and _assemble_done() before calling __update_state_recursively().

With that in place the small optimization of resetting __cached in reset_cached() only if it is False might no longer be necessary, i.e., we can make it a trivial reset method.