Ensure OpenGL supports accessing textures from vertex shaders.

This functionality will be critical for the way we plan on doing creature
models.
Reduce size variation on cherry trees to 1 metre.
Tweak parms of cherry tree trunk.
Parallelise generation of grass.
Add rough partial design doc.
Ignore world.bmp.
Include <bsd/string.h> on GNU systems when needed.

This fixes warnings about strlcpy(), since GNU *still* hasn't added it
to its string library. (And in any case we need this for other libc's,
where libbsd will still be a dependency...)
Change `angle` to be signed.

This is generally more expected, and allows testing for > or < 0 easily,
among other simplifications.

Once caveat is that DEG_180 and DEG_270 are now negative. This caused
the mouselook calculations to be inverted, hence the change that took
place in that file.
Move top-level components to top/ directory.
Remove useless glEnable(GL_TEXTURE_2D) from parchment.