Enabling Custom PlayerControl overlays

I extracted some functions from `GMFPlayerOverlayViewController` into a Protocol and changed all Variables to use `UIViewController<GMFPLayerOverlayViewControllerProtocol>`  instead of `GMFPlayerOverlayViewController`.
Also all usages of `GMFPlayerOverlayView` are now referencing Objects of Type `UIView<GMFPlayerControlsProtocol>` 
This Allows users to use custom Overlay controllers and views.

If no custom overlay controller is set before loading the standard is used.
Please move the line

``@property(nonatomic, weak) id<GMFPlayerControlsViewDelegate> delegate;``

so that it comes BEFORE the comments


``// These are all mutually exclusive. E.g. calling showPlayButton hides all the``
``// other views and shows the play button. Only one can be shown at a time.``

This way, it is clear that the comments pertain to the ``showPlayButton``, ``showReplayButton``, and ``showPauseButton`` methods.