>Refactored `AheadBy/BehindBy` to avoid calling (potentially expensive) git_graph_ahead_behind twice

The `Branch` and its `Tip` are snapshots, but I *think* I'd like to keep this distance calculation dynamic.

How about the following:

```csharp
Branch b = repo.Branches["master"];

TrackingDetails td = b.TrackingDetails;

int a = td.AheadBy;
int b = td.BehindBy;
```

We may even add a lazily evaluated `CommonAncestor` property to `TrackingDetails`. I'll eventually finish libgit2/libgit2#1259. Once this is done, we should be able to replace the temporary call to `FindCommonAncestor`.