Skip hidden faces in PBVH BMesh ray intersection test

Moved the GPU function gpu_bmesh_face_visible() to BKE_paint and
inverted the test to match equivalent tests for other mesh types:
paint_is_bmesh_face_hidden().

Changed BKE_pbvh_bmesh_node_save_orig() to not save hidden faces into
the triangle array.

Modified the non-use-original branch of pbvh_bmesh_node_raycast() to
skip hidden faces.

Fixes bug #33914:
projects.blender.org/tracker/index.php?func=detail&aid=33914&group_id=9&atid=498

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@53912 954f8c5b-7b00-dc11-b283-0030488c597c