Complete Entity structure redesign

After previous experience with Entities and their complex and varied
needs (Player needs tick() but Planet doesn't), I realized that as this
game/engine increases in complexity, the Entity structure will get more
and more jumbled. This, coupled with my recent plunge into Unity3D, has
caused me to rethink the whole structure.

Entity is now an instantiatable class. An Entity's behavior is dictated
by its arbitrary number of Components (no, not awt components). A
component can be anything from a physics implementation to a hitbox to a
joint to an image to a script. Anything that is a distinct part of an
Entity is a Component. The Entity class itself spends its time managing
these Components and not really doing much other than being the place
where they all come together. Any Component can access any other
Component provided they belong to the same Entity, because Components
all hold a reference to the Entity that owns them.

Scripts are now a distinct concept from the rest of the classes. To
write a script you make a class a subclass of Script and override any
number of methods inherited from the Script class, including tick() and
init(). In these methods you make the script do what you want.

This should allow the addition of any number of new Components in the
future without even having to think about previously created objects.