Scene cleanup; add component and global state

This is the start of an effort to clean up and break apart the wp_scene
module into distinct components, including a wp_global module containing
global engine details, a component module and associated subclasses, and
some general bug fixes and code reorganization.

Makefile.am:
- Add wp_global.w
- Add wp_component.w
- Add components/wp_recorder.w

tegen.w:
- Add @i includes for wp_global, wp_component and components/wp_recorder

wp_tegen.w:
- Code cleanup and some bug fixes for uninitialized variables
- Assertion cleanup for objects that no longer exist within their
  respective containers (scene->state, for example)
- References to scene->state have been replaced with a call to the
  wp_global_get_state function, which returns the global engine state
  previously contained within the wp_scene class
- SDL_RenderPresent was moved from the wp_scene base class into the
  wp_tegen render function to fix issues with rendering objects in order
  before the SDL_RenderClear function was called. This also brings the
  SDL_RenderClear and SDL_RenderPresent functions together
- Component code moved from scene objects into component objects, due to
  wp_scene module changes
- Bootstrapping and release now include base component and recorder
  component functions

wp_scene.w:
- Major overhaul of internal components:
  - Any component-specific code has been removed from wp_scene and added
    to wp_component
  - The entire global state structure (wp_global_state) has been removed
    and added to the wp_global module
  - The wp_scene struct has been modified:
    - Fields components, components_sz and next_available have been
      moved down into the wp_component base class
    - A scene is now a component. Scenes now and inherit all of the base
      functionality of the wp_component class
  - The wp_scene_ops struct now inherits from wp_class type, adding
    constructor, destructor and free functions from its base class
    type
  - Function type selectors in the scene class constructor have been
    fixed up to reflect the new component base class: init_components,
    ensure_component, free_components, etc. have all been moved into the
    base class
  - Iterating the component collection of a component object is now
    handled in the base component class. Previously, this existed at the
    scene level
  - Function on_start_record now defers recorder render and
    initialization to the wp_recorder class

wp_global.w:
- Now contains the global state object that was previously within the
  scene class
- Add function wp_global_get_state which returns a reference to the
  global state

wp_component.w:
- Includes all basic component-level functionality. All components
  should inherit from the wp_component class. Components include scenes
  and some higher-level screen widgets, for example
- Component code that was previously included in the wp_scene class has
  been factored into the wp_component module

wp_recorder.w:
- The flashing recorder widget is the first component-based object
  within tegen that's not a scene object
- It wraps the timing and rendering abilities of the flashing Record
  icon enabled during the recording state (F3)