Ability Fast Add & Dash/Hover with Jump fixes

Added a basic function that takes an ability name (as an enum) and adds
that ability. Passive and active abilities can be added, and linked to
the appropriate buttons this way. Presently, abilities can't easily be
removed, so it's probably best to just clear a character and set new
abilities... probably.
Also, finally fixed the weirdness with initiating a dash/hover while
jumping. SHOULD work much more smoothly now, with the dash stopping the
player completely when charging, and the hover/jump combo acting as
expected. Hopefully.

~AddAbility function implemented
~Dash and Hover now reset the jumpHold variable to 0. This SEEMS to have
eliminated weirdness when keys for the commands are pressed immediately
after/while the jump command is given.
~DragY has also been doubled. This seems to help balance out drifting
too far while hovering and jumping simultaneously. This number might
need some fiddling, especially if jump heights are adjusted.
~Cling ability added. Automatically implemented if the walljump or
climbing abilities are activated, it slows descent when touching a wall.
~PhaseShift/PhaseUnshifted ability pair introduced. Can be used to
permanently set phase or to set phasing to a button.