[WIP] The parameterization finally worked.

Over the past few days, I have been attempting to parameterize the type
classes to make lots of methods be able to return the most appropriate
types with no casting needed. I was having lots of trouble at first, but
I think I finally have a pattern down that will let us parameterize type
classes and their instance classes with 1) themselves, 2) the type of
Minecraft Entity that they equate to (i.e. the type of `entityMC`), and
3) the type class/instance class that they pair with. This will allow us
lots of flexibility in coding, including allowing us to make methods once
instead of having to repeat some for each and every subclass. It will also
allow us and our future plugin authors to write in methods with minimal
casting; for example, with this system, `animal.getType()` will not just
return an `EntityType`, but actually an `AnimalType` with no casting
needed!

This system does make a few slight ocmplications internally, but nothing
big. There are only two major issues I've found (which can both be easily
overcome): 1) when you get down the the base types, the type classes cannot
be parameterized properly unless you make a new subclass of that type class
like I did with the `PlayerType` in the `PlayerEntity` class. This is
because of that self-parameterization; if you wanted to make `PlayerEntity`
extend a properly parameterized LivingEntity like it should, the self-
parameterization would cause the third argument to be infinitely defined
like `LivingEntity<LivingEntity<LivingEntity<[...]`. 2) Some plugin
authors may be confused by the fact that all the type classes have a bunch
of parameters, but they can (and actually should) use them as raw types
and all we have to do is let them know that in the documentation and
tutorials.

If you have any questions about this parameterization system, please feel
free to let me know and I'll explain more. I know it's hard to understand,
which is why it took me so long to get it working right, but I believe
that it will make our A.P.I. easier to make and to be used.

Signed-off-by: REALDrummer <conman.davey@gmail.com>