Improvements

Various improvements to functionality.  In particular, the Mesh
component no longer violates current initialization principles.
EC improvements

Adds new shorthand aliases, cleans up some of the internal operations,
and prevents the use of duplicate UUIDs via EntityManager.define() which
resulted in overwriting data.
ShaderProgram updates

The Fog component has been removed in preference of the ShaderProgram
component, which allows developers to specify their own fog shaders (if
any) and use the exiting uniforms property to define any necessary
values required.

This commit also removes redundant code from uniform value declaration
in the render() method.
Export Attributes

Provides an array of symbols used when exporting a component.  These
symbols are analogous to those used by the .create() method of each
component class, and represent the uninitialized data required for
component creation.
Bug fixes

Bug fixes
Bootstrap updates

Adds new features to the bootstrapping file:

* -f, --fullscreen:  force fullscreen mode
* -w, --windowed:  force windowed mode
* --resolution WxH:  force the given resolution, coerced from a string
such as "1280x800" (valid resolution components are between 100 and
99999)
* -H, --headless:  ignore creation of application window (also ignores
previous switches)

Analogous parameters have been added to Arpk.start_app() and
Arpk::App.new()
ExportAttrs update, bugfixes

Updates the ExportAttrs constant for each component to be a hash where
the values are the data types expected by the .create() method.

This commit fixes an error in the signature of the Arpk.start_app()
method.
EntityManager improvements, Descriptors

This commit adds expanded searching functionality to the EntityManager,
allowing for the finding of an entity by its components and for a
component instance by its ID via the .entity_for(c) and .component(id)
methods, respectively.

Various methods have also been made more efficient by reducing the
number of accesses to the component store.

Additionally, this commit introduces the Descriptor component, which can
hold bitwise flags.  Descriptors are mutable and may be changed after
initialization either directly or via the #set(f) and and #unset(f)
methods.  Use #is?(f) to perform a comparison on any flag value.
Database Checksums

Adds support for management of checksum values to Database entries.
Merge remote-tracking branch 'origin/development'