fixed indentation
fixed pointer invalidity issue
Made tiles different shades on each side

this will obviate the need for the %3 rock pattern
Removed now-unneeded rock pattern.

This makes the landscape look a little dull, but,
   well, it IS a little dull.
removed now-unneeded explicit bitshifting
Allowed you to pick up and spend metal.

This is pretty hacky right now.
"dig" an all-metal tile to pick it up.
Each object costs an undocumented, code-duplicated
   amount of metal.
Fixed robot volume stuff

Visually indicated the max stuff you can carry,
   as well as the current amount of stuff
Increased robots' volumes so they can carry more stuff
Reduced autorobots' capacity so they don't carry more
   than their volume; also their cost + volume carried
   totals to less than their volume
consolidated and documented object costs
Shorten cardinal-direction code.

Making cardinal_direction_vectors constexpr means it's no longer
emitted in the translation units that don't use it, yay.

I also renamed add_to to increment and added a couple more utility
functions.
limit to around 60 FPS max
fix race condition when quitting: increment revision

(Also refactor so that the variable assignment is shared.
Add log messages when quitting, showing quit status.

This helped me debug it and might help others because OpenGL
is finicky.
de-inline log constructor/destructor
remove out-of-date comment
Make the rendering thread semi-interruptable.

Now the rendering thread checks an atomic flag frequently
and if/when it's set, returns early rather than finishing the
potentially large number of OpenGL calls it was queued up to do.
This makes quitting with Esc quick, without risking the wrath of
interrupting a GL implementation mid-call nor making it hard to
deallocate the GL buffers we allocate.
make WARNING_FLAGS only use flags that the compiler recognizes,

and add Clang's equivalent of GCC's fmax-errors, and
reduce the number to a limit somewhat more useful with
huge template error messages.

In order to get Clang not to warn about -ferror-limit every time,
we had to add -Werror to the checks to that Clang's warning
about not recognizing -fmax-errors could be upgraded to an error.
LOL.  Also check_cxx_compiler_flag cannot handle flags that have
spaces in them, because it splits on spaces...
log a message just before calling exit()
fix existing harmless warnings from Clang
Add (Clang-only) warning flag for global constructors & destructors.

They are inefficient, and racy.  They bloat startup/shutdown time and
binary size.  Destructors race between one thread calling exit()
and destroying global objects, and other threads using them.
Constructors in separate translation units have arbitrary
initialization order.  Neither of these is something
we can't deal with moderately easily, but it's nice not to have any
and we can do it!  Also, the work in doing it possibly helps things
in other ways.

Setting this warning is the first step to finding and eliminating them.
Make world_constants.hpp constants be constexpr

Which makes them certain to be non-runtime-constructed
(-Wglobal-constructors),
and also not emitted in translation units that don't use them.