Adds global variables, json parsing, and ground-work for character builder/loader

I can't see a valid reason why Player would ever extend Ability or Physics. I get your point, I just don't agree that's it's necessary. For example, the player class may extend entity. Entity could contain x, y, health, stamina, etc and some functions. Player could be a controller.

saying "Class Player: public Ability, public Physics" is like saying Player is part ability, and part physics. When in reality, it's affected by physics and has abilities. Ability should be an object stored in entity.

A class extends another to inherit it's variables and functions for use on itself.