Feature/nodeless cameras lights

Currently, the engine has a pc.GraphNode class for defining transformation hierarchies. pc.CameraNode, pc.LightNode and pc.Entity all subclass pc.GraphNode. I believe we should refactor the engine so that the only thing that can build hierarchies is a pc.Entity. Therefore, we have to perform 2 steps:

1. Make pc.CameraNode and pc.LightNode no longer subclass from pc.GraphNode. Instead, they will reference a pc.GraphNode. They become pc.Light and pc.Camera and become internal (non-API) and are hidden from the docs. From this point, you have to rely on the camera and light components.
2. Merge pc.GraphNode with pc.Entity, making pc.Entity the only object capable of defining hierarchies.

This PR implements step 1.

If we use entities uniformly for the entire hierarchy, it means we can attach components anywhere. For example, it will become trivial to add a particle system component on the hand bone of a character. Very powerful!

Also note that this is more efficient because we used to create an additional GraphNode child of the entity with the light or camera. Now, the light or camera directly references its owner entity without the need for an extra node.

One final side effect of this PR is the pc.ForwardRenderer is now removed from the docs. An engine user should never need to access this class directly.