Fix invalid ranges for gamepad axis sources

Buttons and hat bits were mapped to [0,1] instead of [-1,1].

Fixes #1293.
diff --git a/src/input.c b/src/input.c
index 7ee4281..680de6e 100644
--- a/src/input.c
+++ b/src/input.c
@@ -1286,9 +1286,11 @@
             const unsigned int bit = e->index & 0xf;
             if (js->hats[hat] & bit)
                 state->axes[i] = 1.f;
+            else
+                state->axes[i] = -1.f;
         }
         else if (e->type == _GLFW_JOYSTICK_BUTTON)
-            state->axes[i] = (float) js->buttons[e->index];
+            state->axes[i] = js->buttons[e->index] * 2.f - 1.f;
     }
 
     return GLFW_TRUE;