Bug 1061046. Part 1: Move GraphRate() to MediaStreamGraph so it's public. r=karlt
Bug 1061046. Part 2: Remove MediaStreamGraphImpl::AudioSampleRate. r=karlt
Bug 1061046. Part 3: Remove MediaEngineDefault's VIDEO_RATE and use the graph rate instead. r=karlt
Bug 1061046. Part 4: Remove MediaEngineWebRTCVideo's USECS_PER_S video rate and use the graph rate instead. r=karlt
Bug 1061046. Part 5: Remove MediaEngineTabVideoSource's USECS_PER_S video rate and use the graph rate instead. r=karlt
Bug 1061046. Part 6: Remove MediaDecoderStateMachine's USECS_PER_S video rate and use the graph rate instead. r=karlt
Bug 1061046. Part 7: Remove MediaPipeline's USECS_PER_S video rate and use the graph rate instead. r=karlt
Bug 1061046. Part 8: Remove PeerConnectionMedia's USECS_PER_S video rate and use the GraphRate instead. r=karlt
Bug 1061046. Part 9: Split SourceMediaStream::AddTrack into a method that adds an audio track and can resample, and a method that can add any track but always uses the graph rate. r=karlt
Bug 1061046. Part 10: Remove TrackData::mOutputRate since it's always the graph rate. r=karlt
Bug 1061046. Part 11: Remove callback rate parameters. r=karlt
Bug 1061046. Part 12: Simplify AudioNodeExternalInputStream since no resampling is needed. r=karlt

Since resampling is not needed, we can preserve the number of input channels in each
input audio block.
Bug 1061046. Part 13: Remove rate-conversion functions from Track. r=karlt

Also removes some other unnecessary rate conversions.
Bug 1061046. Part 14: Remove TimeToTicksRoundDown. r=karlt
Bug 1061046. Part 15: Remove most usage of TimeToTicksRoundUp. r=karlt
Bug 1061046. Part 16: Remove most usage of TicksToTimeRoundDown. r=karlt
Bug 1061046. Part 17: Remove some unused TrackRate parameters. r=karlt
Bug 1061046. Part 18: Simplify TrackUnionStream now that there are no rate mismatches. r=karlt
Bug 1061046. Part 19: Eliminate TrackTicks in favour of StreamTime. r=karlt
Bug 1061046. Part 20: Remove Track::mGraphRate since it's not needed. r=karlt