Configure the table and table gateway in the service manager

The two classes are making use of the AbstractFactoryInterface to make
loading as simple as possible.
Refactor the video controller to be instantiated by an abstract factory

This makes it simpler to instantiate and manage required dependencies.
Make code more descriptive with some function comments
Update the video controller test for the constructor dependency

When the controller constructor was changed previously to use
dependency injection, the test wasn't. So this corrects that.
Test for returning no videos