Post-Branching fuckup repairs

I tried to get level locking/unlocking working, and broke everything. I
managed to get a bunch of the good changes back in, such as:

-PlayerStats now programmatically finds all UpgradeableObjects and calls
their Reset() function when PlayerStats.ResetStats() is called

-Fixed upgrades still not saving properly – gameObject.name was giving
me the name of the player_stats all the upgrader scripts are now
attached to. For now they just have a protected string for PlayerPrefs
functions.

So, lesson learned. Submit to git every night, and make changelogs here
and then add them to the website.
Pre-refuckup

Essentially everything is restored to where I had it before I started
dealing with the NullReference issue when Upgrade() is called for level
unlocking.
In the process of fixing level unlocking