Moved around some files to separate the dragon interface from the
implementation.
Created dynamic targetting techniques for a cannon.
Added an offset to cannons to allow for multiple cannons without the need
to syncronize firing times.
Generated a lot of comments to help document what's going on.
Fixed the EnderDragon and MegaDragon calls to the cannon constructor