Propagate MediaStreamSource state to video tracks the same way as audio.
Also removes unused track states kLive and kFailed.
Since this also required a Video source to exist in all unit tests that create a track, a FakeVideoTrackSource is added and used in tests.

BUG=webrtc:5426

Review URL: https://codereview.webrtc.org/1790633002

Cr-Commit-Position: refs/heads/master@{#12098}
diff --git a/webrtc/api/objc/RTCMediaStreamTrack.h b/webrtc/api/objc/RTCMediaStreamTrack.h
index 7883843..b8576bd 100644
--- a/webrtc/api/objc/RTCMediaStreamTrack.h
+++ b/webrtc/api/objc/RTCMediaStreamTrack.h
@@ -11,14 +11,11 @@
 #import <Foundation/Foundation.h>
 
 /**
- * Represents the state of the track. This exposes the same states in C++,
- * which include two more states than are in the W3C spec.
+ * Represents the state of the track. This exposes the same states in C++.
  */
 typedef NS_ENUM(NSInteger, RTCMediaStreamTrackState) {
-  RTCMediaStreamTrackStateInitializing,
   RTCMediaStreamTrackStateLive,
-  RTCMediaStreamTrackStateEnded,
-  RTCMediaStreamTrackStateFailed,
+  RTCMediaStreamTrackStateEnded
 };
 
 NS_ASSUME_NONNULL_BEGIN