This lets us get rid of m_autorelease and m_destroy and we’ll be able
to implement init_game/init_draw later, for stuff that must happen
on the render thread.
We used to have lol::map::empty() to empty maps, but in std::map
this method is called clear(). It sounds safe to harmonise between
our types and have lol::array::clear() too.
This lets us use the code for non-float variable types. I also got
rid of the mat4-to-quat code so that users are forced to use the
mat3-to-quat code and possibly discover places where their code is
suboptimal.
The containers no longer force the user to use the ptrdiff_t type for
size information. For convenience, size() now always returns an int,
and the size_s() method offers a way to handle arrays with more than
2 billion elements. Internally, we still use ptrdiff_t, though.
Since so much code had to be changed, I took the opportunity to get
rid of capitalised accessors for classes that are lowercase.