Entity improvements

This commit ensures that empty tags are removed when all associated
entities are deleted, clears all pending events unless the EventQueue is
aborted, and adds the .by_tag() method to the EntityManager, which
returns an array of entities by their tag(s).
Plugin improvements

The location of the database plugin has been moved to the new lib/plugin
folder.  Additionally, the Wavefront object and material parser has been
removed from the base opengl library and changed to be a separate
plugin.  It has also been updated to better match the ECS ExportAttr
specifications.

This commit also changes the .tagged?() method in the EntityManager to
accept multiple tags.  The method will return false unless all tags
specified are present.
Video playback support removed

VLCJ fails to meet the requirements of the project and support is poor
at best.

Playback support has been removed until an alternative can be found.
Bugfixes

Fully removes dead video support, fixes a bug in the Animator, and
manages issues with the Logger being terminated.

This commit also includes a minor performance enhancement for the
Animator's computation of framerate, and removes unnecessary methods.
Add MutexAttr

MutexAttr is a simple wrapper to provide mutex lock support (via
"monitor" stdlib) on a per-attribute basis in an object.  Methods
performed against the contained field are invoked within the lock's
#synchronize() method, thus ensuring that concurrent access to the
attribute does not result in a conflict.
Convert to extension

Due to transparency issues in an object-based wrapper, an extension has
been written that hacks Module and introduces the functionality at a
class-level without altering the values of the attributes themselves.

Use the new .mutex() method in any module or class and pass the desired
attribute symbols (no @ prefixing at this time) to wrap them.  The
extension will optionally define and create a reader method if the
analogous instance variable does not yet exist.
Component bugfixes

Fixes bugs in intersection testing and removes a line of extraneous code
from the Transform and Descriptor components, respectively.
Extension bugfix

Corrects error in instance variable handling for the mutex extension.
Merge pull request #10 from florf/mutex

Confirmed.
Merge pull request #11 from florf/development

Confirmed.