Guy: rename dash to grounddash

so that in the future we can add a new dash type: airdash. They are
treated as completely different and unrelated abilities, EXCEPT for the
fact that they're both triggered by the same input.  The input logic
will be responsible for determining which ability to execute based on
the player state (`is_on_ground`)
Guy: add airdash properties and empty APIs
Rename dash_powerup.js -> grounddash_powerup.js
Rename DashPowerup -> GrounddashPowerup

also fix incorrect reference to Guy.can_dash
Add Guy._handle_yes_collisions()

and do the on_ground stuff properly
Remove a bunch of potentially confusing comments

I STILL don't have the whole state machine & separation of concerns
thing figured out, so I don't want to set anything in stone yet. But
this means that I will have to be very very careful when
adding/changing states in the future. VERY careful. But at least I won't
have misled myself (hah!)
Add airdashing functionality

weeeee big commit sorry
Merge branch 'topic/ghi/16' into dev

Fixes Github issue #16