Adding AVCaptureSession, AVCaptureDevice and the associated 
AVConnections to VideoCaptureDeviceAVFoundation and the glue.

Added capture session Cr(AVCaptureSession) usage and lifetime management 
to class VideoCaptureDeviceAVFoundation. The methods' names and 
functionality were _inspired_ by QTKit implementation. But, their usage 
has been cleaned up and documented:
- initWithFrameReceiver() method alloc's-init's the capture session,  and is 
counteracted by dealloc() that release()s it. This is the _only_ release point.
- startCapture() is complementary to stopCapture(), both manipulate the 
running state of AVCaptureSession; they also connect/disconnect notifications.

Method setCaptureDevice() does 4 things, when configuring:
- Retrieves the static AVCaptureDevice by name.
- Creates an associated AVCaptureDeviceInput. Plugs it into the session.
- Creates an AVCaptureVideoDataOutput. Plugs it into the session.
- Configures a by-default 1280x720@30fps capture format.
When releasing, it just calls stopCapture() and unplugs the
AVCaptureDeviceSession and AVCaptureVideoDataOutput from the sesion.

With all that, the expected call sequence from VideoCaptureDeviceMac
would be (- indicates internal call or note, + real call):

+initWithFrameReceiver()
+setFrameReceiver()
+setCaptureDevice(device name)
-   inside, the default resolution is set 1280x720
+setCaptureWidth:height:frameRate with the desired parameters
+startCapture()
-  [ capture ]
+stopCapture
+setCaptureDevice(empty name)
-  dealloc() is called dutifully and everything is released.

This CL is part of a larger exercise to add support for Video Capture in
Mac > 10.6 using AVFoundation.

BUG=288562

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

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