Fixed raycasting with BufferGeometry

Raycasts now take BufferGeometry offsets into account.
Added a safeguard to check for the existence of color before adding them
to the intersected face.
Made a minor optimizations by moving a precondition out of the loop.
Pulled vector and array allocations out of loop.
Removed setting vertex color for faces.

Also condensed a couple vector lines.
Cleaned up code style.

Also switched plane creation method to take advantage of the existing
function setFromCoplanarPoints.
Removed invalid face from raycast.
Merge branch 'BufferGeometry---fix-raycast-to-take-offsets-into-account' of git://github.com/insominx/three.js into dev