Add support for OpenGL compute based culling

Change-Id: I15eef96b79c2d46ea876151570b2b88347816683
Reviewed-on: http://git-master/r/554172
Reviewed-by: Automatic_Commit_Validation_User
Tested-by: Markus Tavenrath <matavenrath@nvidia.com>
Reviewed-by: Markus Tavenrath <matavenrath@nvidia.com>
* Add OpenGL VertexArrayObject wrapper
* Use std::shared_ptr<T> instead of dp::util::SmartPtr<T> for OpenGL classes and change the corresponding typenames from Smart* to Shared*

Change-Id: I64cc353dfc60b79c94a906daf2887b2548c65380
Reviewed-on: http://git-master/r/554235
Reviewed-by: Markus Tavenrath <matavenrath@nvidia.com>
Tested-by: Markus Tavenrath <matavenrath@nvidia.com>