New3dapi: small changes

Camera: 
set up vector when using lookAt and remove temp vector right.

Model: 
only set material attributes if they aren't null

ModelInstance: 
add calculateBoundingBox
reference instead of copy the specified matrix (useful for mvc, entity system, etc.)

CameraInputController:
class to easier control the camera (somewhat like the cam in modelling software), the default:
- Left button: rotate around a target vector, horizontal around Y axis, vertical around the right axis (recalculated to be perpendicular to the Y axis).
- Middle button: vertical: move the camera along the direction axis and translate the (rotation) target vector along with it (keeping the same distance).
- Scoll: move the camera along the direction axis, but not translate the (rotation) target vector.
- Right button: move the camera on the up/right plane and translate the (rotation) target vector also.

DefaultTextureBinder:
fix the max texture units (cannot bind more textures than GL_TEXTURE0+31)
only unbind textures that are bound

Mesh:
add calculateBoundingBox for a specific meshpart
add transformUV to translate/scale/rotate uv coordinates

Ray:
avoid creating objects

Change the tests accordingly