Revert 244074 "Eliminate video capture thread in renderer"

Caused lots of races on the tsan bot:
http://build.chromium.org/p/chromium.memory.fyi/builders/Linux%20Tests%20%28tsan%29%283%29?numbuilds=200
Example:

ThreadSanitizer:Race
fun:std::_Rb_tree::_M_begin
fun:std::_Rb_tree::~_Rb_tree
fun:std::map::~map
fun:content::VideoCaptureImpl::~VideoCaptureImpl
fun:content::MockVideoCaptureImpl::~MockVideoCaptureImpl
fun:content::MockVideoCaptureImpl::~MockVideoCaptureImpl
fun:linked_ptr::depart
fun:linked_ptr::~linked_ptr
fun:std::pair::~pair
fun:std::pair::~pair
fun:__gnu_cxx::new_allocator::destroy
fun:std::_Rb_tree::_M_destroy_node
fun:std::_Rb_tree::_M_erase
fun:std::_Rb_tree::~_Rb_tree
fun:std::map::~map
fun:content::VideoCaptureImplManager::~VideoCaptureImplManager

ThreadSanitizer:Race
fun:std::_Rb_tree::_M_begin
fun:std::_Rb_tree::~_Rb_tree
fun:std::map::~map
fun:content::VideoCaptureImpl::~VideoCaptureImpl
fun:content::VideoCaptureImplTest::MockVideoCaptureImpl::~MockVideoCaptureImpl
fun:content::VideoCaptureImplTest::MockVideoCaptureImpl::~MockVideoCaptureImpl
fun:content::VideoCaptureImplTest::~VideoCaptureImplTest
fun:content::VideoCaptureImplTest_TwoClientsInSequence_Test::~VideoCaptureImplTest_TwoClientsInSequence_Test
fun:content::VideoCaptureImplTest_TwoClientsInSequence_Test::~VideoCaptureImplTest_TwoClientsInSequence_Test
fun:testing::Test::DeleteSelf_

> Eliminate video capture thread in renderer
> 
> The main motivation of this change is to remove the video capture thread
> in the renderer. All users of a video capture device already handles the
> video frame on their thread. There is no need to call the clients with
> an additional thread.
> 
> Summary of this change:
> * Video capture thread eliminated
>   VideoCaptureImpl now runs on the IO thread. Clients are called on the
>   IO thread.
> * Simplified VideoCaptureImplManager
>   We still need to keep this object for the purpose of sharing a
>   VideoCaptureImpl object with multiple clients. It should own these
>   objects and maintain the usage count. A couple clean up items are done
>   on this class:
>   * It doesn't own the video capture thread now.
>   * It is now a render thread only object.
>   * It maintains refcount of a VideoCaptureImpl explicitly.
>   * It is no longer refcounted.
>   * Clients access it through RenderThreadImpl. Which ensures usage is
>     on the render thread.
> * New VideoCaptureHandle class
>   Object of this class is returned by VideoCaptureImplManager to give
>   access to a media::VideoCapture object. It is purely a wrapper and
>   helps to do refcounting on the render thread.
> 
> Testing:
> Added unit tests for VideoCaptureImplManager to test refcounting.
> Also updated unit test for VideoCaptureImpl due to the threading
> changes.
> 
> Review URL: https://codereview.chromium.org/120893002

TBR=hclam@chromium.org

Review URL: https://codereview.chromium.org/135683002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@244358 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 244358