Disposing of valueEvent in SwitchBehaviorEvent

1. There was an event being allocated in the SwitchBehaviorEvent that
wasn't being released
2. There was a bug in the BehaviorValueEvent Dispose method where it was
disposing of the associated Behavior. This ins't correct because we want
to be able to dispose the BehaviorValueEvent without dispsing the
Behavior itself.
3. Splitting up the function calls in the Behavior.Map event, to track
down allocations.