Dependency Management Update

This round of updates includes preliminary support for JavaScript dependency management in an effort to reduce config.json maintenance when using engine components or creating new components to use in existing entities.

Changes of note:
* New message handler `platformer.Messenger` class used by both `Entity` for inter-entity communication and the `entity-container` component for parent-to-child communication.
* "platformer.classes.name" class namespace format has been replaced by "platformer.Name" for all such named class definitions including "platformer.Entity", "platformer.Scene", and "platformer.Game".
* The following source lists: "classes", "includes", and "components", can be omitted from config.json, in which case these lists are filled out by investigating the sources' entities list and loading each entity's components and the components' dependencies.
* config.json "includes" list now accepts an array of strings, since ids on the included files were unnecessary.
* Compiler looks for the following comment to determine a given JavaScript file's dependencies:
    // Requires: ["path/to/required-file.js", "or-a-component-id"]