Fix variable declarations for objects

Variables defined in header files are now declared in headers, defined
in the C source file.
Clarify documentation; variable naming consistency

Primarily a consistency fix:

wp_types.w:
- Clarify minor points documentation; improve consistency between
  documentation and code
- Variable and parameter clarification: Rationalize class vs. type,
  object vs. self
- Misc: Clean up function signatures, add additional asserts, minor code
  reordering for clarity
Default HUD to enabled on start

wp_tegen.w:
- For development, ensure the HUD is enabled on program start. This will
  not be the default as the engine matures
Small component logic changes

- Improve if/return logic in wp_component_ensure_component function
- Remove logical check from if statement in
  wp_component_get_first_component_by_type
Fix wp_component->components logic error

Original code allocated an array of wp_component types, but this array
did not include space for inherited types (i.e, wp_scene, for example).
This commit adds union type wp_container, and replaces the wp_component
omponents pointer member of wp_component with a pointer to a collection
of wp_container types. The memcpy operation in the
wp_component_ensure_component function now copies the full size of the
type, inherited or not, to the union array.

All object state sections in wp_tegen, wp_scene and wp_component have
been relocated to the wp_types for inclusion in the wp_container union.

wp_component.w:
- Add type wp_container
- Remove wp_component * components member of wp_component
- Add wp_container * container member to wp_component
- Update functions for new member, replacing "components" with
  "container" access
- wp_component_free_components renamed to wp_component_free_container
- wp_component_init_components renamed to wp_component_init_container

wp_tegen.w:
- Allocation of the wp_components array replaced with an array of
  wp_container types
- Member functions renamed in wp_component updated
- Move Object State section to wp_types output

wp_scene.w:
- Object State section moved to wp_types output
- wp_image removed from wp_scene.h header

wp_types.w:
- wp_base_dtor section name corrected per CWEB warning of missing close
  syntax
- Section "|wp_types.h| Object State" added to wp_types.h; this includes
  all types required by the wp_container union, meaning any type
  inheriting from wp_base, or any wp_base subclass
- Includes for SDL added, since the Object State of various types
  requires access to SDL types