Added a material manager and made materials thread safe.
Also removed the bitwise parameters. They are replaced with appropriate getters and setters. #792
Update CHANGELOG.md

Added details for multiple cameras, scenes and added section for task queue.
Changed the way object colors work to reduce memory footprint and increase performance (slightly).
`AMaterial`'s method `setUseColor(boolean useColor)` has been removed. There are two new methods that replace it:
- `setUseSingleColor(boolean value)`: When the object uses a single color for the whole mesh use this. This way no color buffer will be created which reduces the memory footprint and increases performance, especially in big scenes.
- `setUseVertexColors(boolean value)`: Use this when your mesh has multiple colors. This isn't applicable to textures, just vertex colors.
geometry and buffer optimisation. color, normal and texture coordinate buffers were created when they weren't used.
added boolean parameters to primitives to indicate whether specific buffers should be created or not.
also added a ScreenQuad primitive. this was done with a regular Plane before but this was very confusing.
also added a bit of documentation to the primitive classes.
Added an extra option to the constructor. the plane up axis can be specified now. the default axis is Axis.Z, looking at the camera. To create a ground plane use Axis.Y.
Revert "Added an extra option to the constructor. the plane up axis can be specified now. the default axis is Axis.Z, looking at the camera. To create a ground plane use Axis.Y."

This reverts commit 6c742cfb83eec9a1762b57d86ac4e4a42adbb4e5.
Revert "Revert "Added an extra option to the constructor. the plane up axis can be specified now. the default axis is Axis.Z, looking at the camera. To create a ground plane use Axis.Y.""

This reverts commit 2a749f4258be2026b074b50c32da73c56fd5e73f.
The orthographic camera had a -z default value. This was a relic from the old coordinate system.