Merge seeker.tags / penalty with ITraversable

The ITraversableInterface is easy to use when you just want to create a path from point A to B.
Though normal movement scripts with a seeker don’t have any direct support for them.

A simple AIBase.SearchPath(ITraversableInterface) would also make a lot of sense.

AIPath implementation:

public virtual void SearchPath (ITraversalProvider traversalProvider) {
    if (float.IsPositiveInfinity (destination.x)) return;
    if (onSearchPath != null) onSearchPath ();

    lastRepath = Time.time;
    waitingForPathCalculation = true;

    seeker.CancelCurrentPathRequest ();

    Vector3 start, end;
    CalculatePathRequestEndpoints (out start, out end);

    // Request a path to be calculated from our current position to the destination
    ABPath p = ABPath.Construct (start, end, null);
    if (traversalProvider != null)
        p.traversalProvider = traversalProvider;
    seeker.StartPath (p);
}