Support different camera reflection heights

Currently a fixed height of 32 blocks is used to compute surface reflections. This PR makes this value flexible through a getter/setter in `Camera` and also uses a newly introduced sea level parameter to find meaningful values for this.

Every reflection level requires a rendering pass which is why only one reflection level is supported.

As the world generator defines this value, it must also be communicated to remote clients. This is done through the `ServerInfoMessage` class.


Maybe add an extra note here to point out what's magic about the sea level? Currently that it is use as the sole reflection layer

Like: "the sea level, measured in blocks. May be used for setting such things as the block layer to use in water reflections"