Consistency update

Unattractive update:
- Audio: GetListenerDirection was using ALfloat and GetListenerRotation not.
- ByteArray: Two return *this, hazh is perturbing, is it intended ?
- String: Same ?
- Camera: Adds of security (don't think it's usefull)
- Parser: size() = 0 -> empty()
- Utility: update 13 to 14 was forgotten in the previous patch just made
- VertexDeclaration: same
It's a good idea to test this but this is not the right place to do so because of this:

```c++
Camera camera; // Creating a camera, znear defaults to 1 and zfar defaults to 100

// Now let's say we're using kilometers as units and want the frustum to go from 1 meter to 500 meters
camera.SetZFar(0.5); // Error because znear is greater than zfar
camera.SetZNear(0.001); // Even though i'm setting a smaller znear here
```

It's not obvious that you should call SetZNear before calling SetZFar, this is why this test belongs to Camera::UpdateProjectionMatrix.