Camera don't compute their view matrix at each frame anymore

A cache system has been added to BABYLON.Node to be used in BABYLON.Camera like it was already done in BABYLON.Mesh.
The comparisons between the current values and the values of the cache enable to compute the view matrix only when needed like it's done for BABYLON.Mesh.prototype.computeWorldMatrix.

In derived classes, you can override the following functions

- _isSynchronized() method (which returns false if a change is needed)
- _initCache() method (which allows you to init the new variables that you append to cache)
- _updateCache() method (which is called to update the cache after changes detection)

If you override them, do NOT forget to call the parent class function (except for _initCache). See what it is done in BABYLON.Camera.

Warning: pay attention to the "_", do NOT override the public counterpart of these methods: isSynchronized and updateCache

Remark: I didn't override _updateCache in BABYLON.Mesh to avoid modifications in this code. I was not sure to do the right things. Of course, BABYLON.Mesh can override it.

Fixed BABYLON.ArcRotateCamera.prototype._getViewMatrix
Added a inertia epsilon on free camera movment (like in arcRotateCamera).
Fixe the radius change event of arcRotateCamera and add a inertia on this.
Camera don't compute their projection matrix at each frame anymore.

Extension of the cache system in BABYLON.Camera to take appart the ViewMatrix and the ProjectionMatrix.

In derived camera, override _isSynchronizedViewMatrix() instead of _isSynchronized(). Nothing else change.
Fixe some issue with the cache.
Use of Number.MAX_VALUE instead of Infinity to be consistent with other parts of the code
Improved BABYLON.Camera.prototype._isSynchronizedProjectionMatrix
Merge pull request #126 from JulienGobin/syncCameraMatrices

Sync camera matrices