A new kind of management.

@zachtaylor 

It seems like the repo is filling up with AbilityManager/NatureManager/([A-Za-z]+)Manager classes as it becomes apparent that everything that can be managed in this fashion should be managed in this fashion.

I took a stab at abstracting all of these away. The new `SimpleManager<T>` class should be able to automatically register and keep track of any object that has both a

1. `manager` field of type `Manager<T>`; and
2. `getName` field that returns a non-null `String`

There's an example of its usage in the `ManagerTest` class. Let me know what you think.