Type rewrite in preparation for projectiles, etc.

All this structure is redundant now, but once more entities
(projectiles, enemies, etc.) start showing up it'll be more useful
(though there will need to be some changes, such as spawn requests,
kill requests, etc.).
Rename loop to avoid shadowing.
Wrap at 80.
Change the design to be event-based.

We have events, and a pseudo-event Nothing that corresponds to
'nothing happened, but we need to update anyway for physics'.
Merge branch 'evented' into projectiles

There's some weirdness here, like 'jumpiness' when you release a
movement key, but it works!

Conflicts:
	mekhane.cabal
	src/Mekhane.hs
	src/Types.hs
Cleanup and instantification of wires.

In order to ensure that a keydown starts the player moving on the same
frame, we need to make sure that as many control wires as possible are
instant.
Split out player code into separate file.
Change KeyEvent to Event and add MouseButtonEvent.
Add -Wall to cabal.
Change wires to output an ObjectOutput wrapper.
Remove Bundles. We don't need them.

The only point of bundles was to provide sharing, and we
don't *actually* need them since we can just use arrow notation, split
arrows, etc.
Move player stuff out, and create mouse event handling.
Split rendering code into its own module in prep for projectiles.
Basic projectile-spawning code.
Real projectiles! They travel towards the target at a fixed speed.

One of the issues right now is that stepGameWires in Mekhane.hs is
ugly as sin. Not sure how to fix it, though.
Merge branch 'projectiles'
Remove debug trace.