Organize and update player-control code

- Organize the pointerlock and keyboard code into helper functions.
- Move pointerlock CSS into css file.
- Only activate the keyboard once clicked screen (so can't move around
  if pointerlock isn't activated).
- Start player facing the buildings, rather than in a random direction.
  This was caused by a bug initializing `this.pitch` and `this.yaw` to
  inconsistent values.
Fix some comments.
Add stripes to buildings

In an attempt to make the "buildings" look more like buildings, this
adds horizontal stripes to the building. It does so by mixing stripes of
black with the building `vColor`.

This is definitely a work in progress, but it shows the basic idea.
Add deterministic noise to building heights

- Add deterministic noise to buildings heights
  - To do this, need to assign a unique x and y ID for each building.
    These IDs serve as the initial seed for the random function. Then
    multiply `zFac` by a random float in [0.25, 1.25].
- Remove duplicate code for helper functions in the vertex shader
  (No need for entirely redefined functions for the two cases, can
  share most of the code)