Configure and Makefile improvements

Add improvements to the build process
- Remove each individual file dependency and simplify with a more
  generic makefile model
- Add make tests
- Remove --with-sdl option from configure.ac, in line with gnu build
  standards
- CFLAGS and LDFLAGS must be provided if SDL, SDL_ttf and SDL_image are
  in a non-standard locations. This includes include and lib folder
  locations
- clean step added with clean-local in Makefile.am
- make tests now correctly executes tests from tegen/tegen folder as
  well as tegen/tegen/src
Add Object Orientation and Component Model

Epic Commit!

Add wp_types.w module which adds OO-like programming constructs in plain
C. This is a learning exercise! Not all objects will utilize the OO
features included in this module.

Change Summary:
- Add the wp_types.w module to the repository. It has been integrated
  with wp_tegen and wp_scene

wp_types.w:
- The wp_types module adds object-orientation concepts to tegen:
  - Class and meta-object definitions
  - Inheritance
  - Dynamic method dispatch
- This commit includes multiple revisions of wp_types.w squashed down
  into one mega-epic commit:
  - Move @d definitions near the tope of the file for clarity
  - Remove extern from WPObject and WPClass declarations; they're
    defined in the source file
  - Add bootstrap function: Iterate provided list of parameters, calling
    each parameter provided in the order it's provided. This allows us
    to serialize some on-start features, such as class and object
    models, before use by modules. Bootstrapping happens before anything
    else
  - Add "release" semantics to wp_types_shutdown function
  - Move misc. declarations closer to their definitions

wp_scene.w:
wp_tegen.w:
- Update wp_scene and wp_tegen objects to inherit from WPClass and
  WPObject, aspects of the wp_types module. wp_tegen inherits from
  wp_scene.
- Not all OO features are tied up, yet. This includes some broken logic,
  such as destruction and finalization. To be worked out.

Makefile.am:
- Add wp_types and wp_type_tests.c to the build process

wp_tegen.w:
- Clarify module definition (bootstrap vs. initialize)
- Add wp_tegen_bootstrap function
  - Initialize type system (see wp_types.w)
  - Initialize wp_tegen_class and wp_tegen_object as ordered by the
    bootstrap function
  - Release boostrapped objects in object destructor function
- Initialize graphics field to NULL. Fixes valgrind error related to
  uninitialized values
- Correct wp_tegen_get_instance which, in the previous version, was not
  correctly setting the static stack object to the newly allocated heap
  object. Fixes wp_finalize assertion for the base type
- Rationalize module startup and bootstrap functions. May need to rename
  wp_memory_startup to wp_memory_bootstrap to match the "new" model

wp_scene.w:
- Add wp_scene_class_bootstrap function
- Add wp_scene_class_release function
- Move wp_malloc_of for wp_scene_class and wp_scene_object into boostrap
  code block (wp_scene_class_bootstrap)
- Initialize object state to NULL (o->state = NULL)

tegen.w:
- Call wp_tegen_bootstrap() prior to all other tegen functions
- Add braces around wp_finalize function call (clarity)

Additionally, add component model to wp_scene and wp_tegen to handle
on-screen and object component-style programming. This is a heavier
work-in-progress than the object oriented code.

Change Summary:
- It's a Heavy Work-In-Progres!
- It's a mess
- Add wp_component class and operations to wp_scene.w (will be relocated
  at a later date)

wp_scene.w:
- Add wp_ctype_dummy to wp_component_type enum
- Add free_components function to wp_scene_ops struct
- Remove wp_scene_on_pre_render and wp_scene_on_second functions
- Add initialization loop to components (id = -1). This is ugly
- Update wp_scene_on_start_record event to utilize new component model
  and update logic. The intention is to ensure a component (i.e., the
  record icon) is activated during the correct update loop notification
  cycle, and that the component is added to the list of components
  available to the scene
- Add wp_scene_free_components function to tie to the free_components
  function pointer in wp_scene_ops. This iterates the list of added
  components and performs any clean up work required (i.e., freeing
  textures and surfaces)

wp_tegen.w:
- Remove ops->free logic from the wp_tegen_dtor function; this free
  semantically belongs in the wp_tegen_free function
- Add aforementioned ops->free logic to the wp_tegen_free function. The
  wp_tegen.ops member is heap-allocated during initialization;
  "overloaded" functions are handled during init. This will change from
  a heap-allocation to a stack allocation in the next commit
- Add free logic to the shutdown function. This will be removed in the
  next commit
- Remove empty_component static from wp_tegen_main_loop, as well as loop
  logic used to initialize the components
- Add free_components call to clean up any utilizes components during
  the application lifecycle

Misc. Change:

wp_memory.w:
tegen.w:
- Remove wp_char_t from wp_memory.w and move it to tegen.w; it's used
  later

.gitignore:
- Add files to the .gitignore file

Other:
- Add local-configure and convert.sh scripts
  - Not to be included in the final build; these are scripts the
    developer uses locally. Eventually, these files will be removed.
- Add recording and screenshot capabilities (WIP):
  - Code added to save frames and screens via keypress. Not ready, needs
    further testing, documentation and code cleanup