Add secondary log window and improve log functions

This commit adds a secondary window for logging output directly from the
engine (currently accessed via the 'l' key). This is a simple,
low-performance linked-list-based logger that dumps some number of
messages in the log list to a surface to be blitted to the logging
renderer. Text-to-SDL_Surface handling is presently through the
(slow-ish) SDL_ttf library.

- Add components/wp_logger.w
- Add wp_log.w
- Remove include/wp_log.h

wp_log.w:
- Remove old wp_log.h header file
- Log functions are now fully declared inside their own CWEB file
- Old #define's for logging are now wrapped in an inline function
- May now log to both the console and logging window

components/wp_logger.w:
- Handles printing log messages to the logging window
- Work in progress; this is low-performing code right now

Misc:
- wp_log function call signatures updated with severity level
Fix access to the graphics module

This commit removes the graphics member field from struct wp_tegen and
relocates it as a member field of the private implementation of the
global state object.

Additionally, it adds the function update_texture_from_surface, which
emulates the functionaility of SDL_CreateTextureFromSurface (for the
most part).

wp_global.w:
- Add private implementation (pimpl)
- Move field graphics from struct wp_tegen to struct
  wp_global_state_pimpl
- Create accessor function get_graphics in struct wp_global_state_class
  in order to lazy-load the graphics module and internal state

wp_scene.w:
- Utilize new function update_texture_from_surface from the graphics
  module

components/wp_logger.w:
- Utilize new function update_texture_from_surface from the graphics
  module

wp_tegen.w:
- Remove references to the graphics struct, include destruction in the
  wp_tegen_dtor function, or allocation from the module startup
  function