removed ogl::Texture2D support from InputArray
added CudaMem support to Input/Output arrays
renamed gpu headers (made it more consistent)
removed obsolete DevMem2D class
added Stream support to ogl::Buffer
moved inline implementation to separate file
moved GpuMat implementation to separate file
refactored GpuMat:

* switch to InputArray/OutputArray
* add Stream support
new implementation for GpuMat::setTo (without constant memory)
refactored CudaMem (now alloc type assign only in constructor)
refactored gpu::Stream (minor fixes)
refactored gpu info structures (TargetArchs and DeviceInfo)

now DeviceInfo provides full information about device (from cudaDeviceProp)
added Event class (wrapper for cudaEvent)
made createContinuous & ensureSizeIsEnough generic (OutputArray support)
used cudaMalloc for 1-row or 1-column matrix instead of cudaMallocPitch
renamed gpu_private.hpp to private.gpu.hpp
fixed documentation build
added missing <iostream> header
Merge pull request #974 from jet47:gpu-core-refactoring