Reworked SteerForNeighbors (MAJOR CHANGE)

This is a significant change, which means that:

1) I am not likely to do a point release in the near future for it, and
2) You should really read the documentation on the issue below before
   pulling this revision into your codebase if you're using any of the
   SteerForNeighbors descendants.

https://github.com/ricardojmendez/UnitySteer/issues/18
Exposing AcceptableDistance on SteerForPursuit
Exposing minimum speed on SteerForMinimumSpeed
SteerForMinimumSpeed optionally moves forward by default
SteerForNeighborGroup optimization: Neighbors are cached on detection

This means that IsInNeighborhood is evaluated when detected, not every
time that the behavior is going to calculate its forces.

This helps in lowering the processing load, but could lead to a case
where a vehicle is beyond the set parameters but still considered a
neighbor.

If this is a concern, make sure that vehicles are detected as often as
the vehicle updates is forces.
SteerForSeparation optimization: v.sqrMagnitude is faster than Dot(v,v)

I'm getting about 30% performance increase from using the offset's
sqrMagnitude property as opposed to the dot product of the vector
against itself when dealing with thousands of calculations per frame.
Improved SteerForCohesion documentation
Improvement: SteerForAlignment wasn't using the cached Transform value
New SteerForSeparation ComfortDistance
SteerForNeighborGroup and Radar improvements and optimizations

- It doesn't really make sense to have a separate LayersChecked property
  from the one already present on the Radar - if you didn't want to
  consider them neighbors, you shouldn't have scanned for them.
- Radar.OnDetected no longer sends a SteeringEvent, will now just send
  the radar. The extra allocation was unnecessary.
MAJOR CHANGE: Vehicles will always use their own mass for calculations

WARNING: Make note if your vehicles' internal mass if you're using it
at all before upgrading to this version.  Hopefully you have these
things under version control.

Previously we used the Vehicle's Rigidbody's mass as the vehicle's own
unless OverrideRigidbodyMass was set to true.  This added the need for
some unnecessary checks, and moves some settings to outside of the
vehicle itself, when it's best to have things consolidated.

Starting on this commit, I am:
- Removing any difference between mass and internal mass.
- Removing OverrideRigidbodyMass.
- Simplifying the Mass getter/setter.

If an agent wants to alter the attached rigidbody's mass, they should
do so directly and explicitly.
Improvement: No good reason for Vehicle.CanMove to be virtual

This change makes the code easier to grok, no longer has hidden
assignments.

Some vehicles clear their velocity when the CanMove property is set to
false, but this can be done just as well on the Update method - which
TickedVehicle is already doing.  It's not like an assignment is going
to break the performance bank.
Removed redundant normalization for planar ticked vehicles

Unity takes care of forward normalization on assignment, so there's no
good reason to have an extra call in there.
Removing RadarPing, it has been obsolete for a while
Radar detection changes

- Detected colliders are now cached by their instance id, so that we
  can use a SortedDictionary to find them.
- Comparing explicitly against the vehicle instead of leaving that
  up to ignoredObjects.Contains, since that will be the case we will
  encounter more often.
- No need for an explicit Vehicle backing property.
Force should be affected by mass before being clamped to MaxForce

Otherwise we could have a case where a mass that is < 1 ends up
amplifying the force beyond the maximum amount that we can apply.
Exposed list of detected neighbors on SteerForNeighborGroup
Added script execution order to vehicle classes

We need them initialized before SteerForNeighborGroup, since that
depends on the radar.
Initializing SteerForNeighborGroup on Start

We need to ensure that the base vehicle has been initialized, so it's
cleaner if we don't rely on script execution order and instead
initialize this behavior on Start.
Vehicle's radar does not need a backing property