Until now, the annotate_cmd was taking the last (or any?) checkin that introduced the
artifact to be annotated, totally unrelated to what version is checked out. Multiple checkins may have introduced the same artifact, in cases where some checkins remove work done in other checkins, or when multiple branches end up having the same code.

I made annotate_cmd respect the checkout, and annotate only from the past until
the checked out version. This makes the command slower, but at least does what
I'd like it to do. Maybe someone else can come up with a faster or simpler
implementation.

I changed the compute_direct_ancestors code so I could call it twice in a single
run.