Cherry-picking agent-turning changes from 977db06d

There was a bug which caused the turning speed to be disregarded. I fixed
it on the experimental branch, and this commit cherry picks those changes
and adapts them to the development branch.

Notice that since those changes depended on the way that the experimental
branch handles velocity, they might not be as suitable for the old
approach.  Experiment with your agents first to see if this yields the
results you expect.

See properties:
- AutonomousVehicle.MinSpeedForTurning
- AutonomousVehicle.TurnTime

Note: A "TurnSpeed" might be more appropriate. TODO-TEST.

Cherrypicked:

Agent turning improvements

- Renamed SpeedFactorOnTurn to TurnSpeed, more accurate.
- The vehicle now gradually turns towards the desired velocity.
- Separated the application of the velocity from the vehicle's turning.
  This is a subtle change, but will likely make it easier to make
  tank-like vehicles.
- The minimum speed necessary for turning should be a per-vehicel value,
  not a global constant
Merge branch 'experimental' into development

The experimental branch has been in review for long enough, and it
is now my main work branch. Merging it into development. Any new
releases will likely be based off it.
Created IPathway interface and changed users of Pathway to use IPathway instead

Previously, all pathway code was based on the abstract class "Pathway." Because it is an abstract class, rather than an interface, it made it difficult for objects that already derive from another class (e.g. MonoBehaviour) to provide pathway information.

Switching to an interface allows those classes to implement the required methods without losing their existing base class relationship; and because the Pathway class itself supports the interface, no existing code should be affected.
Merge pull request #3 from richard-fine/master

Created IPathway interface and changed users of Pathway to use IPathway instead
BUGFIX: Not turning towards the velocity if it's zero
Removing legacy property HasInertia

HasInertia is not really used by any of the recent steering behaviors,
and proper handling will require its own type of vehicle anyway, so
there is really no reason to keep it around.  Since we're already
breaking backwards compatibility in this version, it's time it went
away.
Removing Linq's ForEach

Working around some Linq support deficiencies / changes.
BUGFIX: DetectableObjectEditor wasn't setting it as dirty after change
BUGFIX: Should have been using Slerp to change the forward vector
BUGFIX: The Y on planar vehicles' forward should always be 0
OpenSteerUtility should be static
Splitting Biped and AutonomousVehicle (WIP, needs refactoring)

My current in-development work had initially been done directly on the
AutonomousVehicle class, but changing how the speed and velocity are
treated would have broken any implementations depending on the previous
approach, like Boids.    I have decided to split them in two classes,
with AutonomousVehicle retaining the old way of doing things and Biped
being the class for vehicles that can alter their velocity vector instead
of just their speed (to, say, side-step).

This is a work in progress, and there is still some code duplication
between both classes which needs to be refactored.
Refactored AutonomousVehicle / Biped

Both classes now have a common parent, TickedVehicle, since the only
thing in which both really differ is on how they apply the speed and
velocity vectors.

- Moved common code to new, abstract TickedVehicle.
- Removed LastAppliedVelocity, it was not being used anywhere.
- Documented new methods

NOTE: Most of my testing is still focused on Bipeds. Consider the changes
to AutonomousVehicle mostly untested.
Initial re-do of SteerForSphericalObstacleAvoidance

- Added DetectableObjectCreator, since we now expects every obstacle to
  have its DetectableObject data.
- Fixed an old, old bug with FindNextIntersectionWithSphere
- Cleaned up unnecessary wrapper function on Vehicle
BUGFIX: SteerForCohesion wasn't returning the force vector in local space
Explicit backing properties on PathIntersection to make MD happy

While Unity's compiler is happy to initialize a struct with implicit
property accessors, MD barfs unless these have explict backing fields.
It's not clear which one's wrong, but I'm adding the fields so that we
can continue to build on MD as well.
Removed leftover property
Updating the change log for 2.5
UnitySteer 2.5b1. Merging development changes
Optional ConsiderVelocity parameter for SteerForPoint