Upgrade System Abstraction

Added another base class to the upgrades class tree. Maybe it's getting
excessive.
Achievement Trackers In place

Achievements are now implemented. Just need to actually notify the
player when they're unlocked and what their progress is.
Removed PlinkyEngine, PlinkyObject

Converted engine's members (all the various handlers and trackers and
such) to singletons.
Game Is Broken

All of the scripts attached to gameobjects have disappeared somehow.
Something is terribly wrong. I'm just saving this because I had a lot of
progress done refactoring things. This is going to be a pain.
Game Is Not Broken

Publishers and subscribers are now implemented. I'm sure there are still
some things that should be transferred to that pattern, but I'll handle
that as I find it. Also you can only have three balls out at once now.
Revamped Pub/Subs

All publications are handled by a single publisher for the time being,
due to conflicts with the way I was keeping track of all the instances
of GameEvent I had stored in the GameEventRegistry and the way
Monobehaviours... behave with the Awake() function. Trying to make
GameEvent Monobehaviours made a lot of problems for me.

Also I'm pretty proud of my new dynamic LenkedObjectRow object. Funny
how problems I just couldn't figure out last month are almost trivial
for me to solve now.
Full Beta Status

Oh yessss... Tons more levels. Some stats are now displayed in the stats
menu.
Working On LevelUnlocker Bug

When the player unlocks a level with one coin left, that coin gets
destroyed but not counted properly by LevelCompleteChecker.
Added BGM

See title. And it's awesome. Also a mute button for the BGM.
Merge pull request #5 from InfernalLogic/adding_achievements

Adding achievements