VideoCapture did not detect an unopened camera

Resolving [issue 3880](http://code.opencv.org/issues/3880): 

"I believe that during the creation of the new videoio module, VideoCapture was broken by using cv::Ptr : When using Direct Show (and most probably any other camera module), isOpened() always reports "true" even if no camera has been opened"

I don't know how VideoCapture_IntelPerC behaves but I assume/hope my code does not break it.

The change in cap_dshow.cpp is actually not necessary to fix the bug itself but I think checking for non-negativity would be a good idea. (In this line the actual run-time exception leading to the discovery of the bug was thrown.)
Good point. The problem is that IVideoCapture does not have an isOpened() method. I don't know why, but many classes which are based on IVideoCapture do not provide one as well.
So do you like a cast more?
````
if(capture && ((Ptr<VideoCapture_DShow>)capture)->isOpened())
````
or
````
if (capture && ((VideoCapture_DShow*)capture.get())->isOpened())
````
probably work.