fix bug in config.py parsing where it doesn't accept negative values

In the rockage branch, I was trying to do this:

```
[[donation_tier]]
'SJSU Student discount' = -10
'No thanks' = 0
'Supporter Package' = SUPPORTER_LEVEL
```

(note: not necessarily that doing that above is a good idea, just something I was trying out)

This exposed a bug in the underlying config parsing since I guess we've never tried to parse a negative INI value in the history of ubersystem.

This was crashing on '-10' because the previous code was using str.isdigit() which returns false for -10.  That would instead try to resolve it like a variable name doing globals()['-10'] which threw a KeyError.

The fix is that instead of using isdigit() directly, we check for the presence of a +/- first and then do isdigit() after that.
Note that the empty string case *probably* can't happen in this particular case since it's uncommon (though not strictly impossible) to have the empty strings as configobj keys.  But it's still worth checking IMO.